最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot加載靜態(tài)資源的方式

 更新時(shí)間:2017年04月11日 10:57:52   作者:木葉之榮  
本篇文章主要介紹了SpringBoot加載靜態(tài)資源的方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在SpringBoot中加載靜態(tài)資源和在普通的web應(yīng)用中不太一樣。默認(rèn)情況下,spring Boot從classpath下一個(gè)叫/static(/public,/resources或/META-INF/resources)的文件夾或從ServletContext根目錄提供靜態(tài)內(nèi)容。下面我們來寫個(gè)例子看一下就會(huì)一目了然了:首先看一下項(xiàng)目的目錄結(jié)構(gòu):

我們在resources下面的templates目錄下建一個(gè)home.html的文件,完整目錄為:src/main/resources/templates/home.html。內(nèi)容如下:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
  <meta charset="utf-8"/> 
  <title>ConanZhang的首頁</title> 
</head> 
<body> 
我是首頁: 
<!--<image th:src="@{/image/267862-1212151Z12099.jpg}"/> --> 
</body> 
</html> 

如果我們想要訪問home.html應(yīng)該怎么做呢?我們先來看第一種方式:

1、我們在web.controller這個(gè)包下面建一個(gè)Controller類:ThymeleafTestController.代碼內(nèi)容如下:

package com.zkn.learnspringboot.web.controller; 
 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
 
/** 
 * Created by wb-zhangkenan on 2016/11/30. 
 */ 
@Controller 
@RequestMapping("thymeleaf") 
public class ThymeleafTestController { 
 
  @RequestMapping("home") 
  public String getHome(){ 
 
    return "home"; 
  } 
} 

寫到這里你一定非常眼熟,這不就是SpringMVC的寫法嗎?沒錯(cuò)就是SpringMVC的寫法:下面我們來訪問一下:http://localhost:8003/thymeleaf/home。結(jié)果如圖所示:

因?yàn)镾pringBoot集成了Thymeleaf,所以它會(huì)默認(rèn)查找resources下面的templates這個(gè)目錄下的文件。templates這個(gè)目錄的名字不要寫錯(cuò)了。接著我又有了這樣的需求,假設(shè)我想在我的home.html中引入一些其他的靜態(tài)資源文件,比如我想在home.html中引入一張圖片:那我們應(yīng)該怎么做呢?

首先,我們需要在resources下面建一個(gè)static或者public的目錄,你不建立目錄也行,直接放到resources下面,接著我們再建立一個(gè)image的目錄,最終的目錄結(jié)構(gòu)如圖所示:

我們在image這個(gè)目錄下放入一張圖片,然后我們在home.html中引入一下這張圖片,最終的代碼如下:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head>WebMvcConfigurerAdapter 
  <meta charset="utf-8"/> 
  <title>ConanZhang的首頁</title> 
</head> 
  <body> 
我是首頁: 
  <image th:src="@{/image/267862-1212151Z12099.jpg}" width="100px" height="50px" /> 
  </body> 
</html> 

看到上面的寫法你可能會(huì)有些奇怪,th:src和@{}這都是什么鬼。其實(shí)這是Thymeleaf的語法。@{}是引入外部資源用的。下面我們再來訪問一下,結(jié)果如下圖所示:

這樣我們就訪問到了image目錄下的圖片了。

可能會(huì)有人說難道我只能放到static、public或者直接放到resources下面嗎?我換個(gè)目錄就不行了嗎?那當(dāng)然不是這樣的,下面我們來換另外一種寫法:

在我現(xiàn)在的這個(gè)項(xiàng)目中前臺(tái)是用React-redux寫的,后臺(tái)SpringBoot只是用來提供接口的,我只需要一個(gè)首頁來把編譯后的react-redux引入到項(xiàng)目中就可以了,如果我想直接訪問這個(gè)首頁那我應(yīng)該怎么做呢?SpringMVC為我們提供了這樣的一個(gè)類:WebMvcConfigurerAdapter。我們就是借助于這個(gè)類來實(shí)現(xiàn)我們需要的功能的。我們寫一個(gè)類來繼承這個(gè)類,代碼如下:

package com.zkn.learnspringboot.config; 
 
import org.springframework.context.annotation.Configuration; 
import org.springframework.util.ResourceUtils; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
 
/** 
 * Created by wb-zhangkenan on 2016/11/30. 
 */ 
@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 
 
  @Override 
  public void addResourceHandlers(ResourceHandlerRegistry registry) { 
 
    registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/",ResourceUtils.CLASSPATH_URL_PREFIX+"/image/"); 
    super.addResourceHandlers(registry); 
  } 
   
} 

我們重寫了addResourceHandlers這個(gè)方法來重新注冊了一個(gè)資源處理器。接著我們在來訪問一下看看:http://localhost:8003/templates/home.html。結(jié)果如下圖所示:

注意了這里我們是直接訪問的home.html這個(gè)文件。和我們預(yù)期的效果是一樣的。接著可能會(huì)有人說:如果我也想在home.html中引入靜態(tài)資源要怎么辦呢?比如說上面的那個(gè)例子,我要引入一個(gè)一張圖片。也簡單,那我們就再注冊一個(gè)資源處理器就OK了。Java代碼如下:

package com.zkn.learnspringboot.config; 
 
import org.springframework.context.annotation.Configuration; 
import org.springframework.util.ResourceUtils; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
 
/** 
 * Created by wb-zhangkenan on 2016/11/30. 
 */ 
@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 
 
  @Override 
  public void addResourceHandlers(ResourceHandlerRegistry registry) { 
 
    registry.addResourceHandler("/templates/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/templates/"); 
    registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/static/"); 
    super.addResourceHandlers(registry); 
  } 
 
} 

home.html中的內(nèi)容如下所示:

<!DOCTYPE HTML> 
<html xmlns:th="http://www.thymeleaf.org"> 
<head> 
  <meta charset="utf-8"/> 
  <title>ConanZhang的首頁</title> 
</head> 
  <body> 
我是首頁: 
  <image src="/static/image/267862-1212151Z12099.jpg" width="100px" height="50px" /> 
  </body> 
</html> 

接著我們再訪問以下看看什么效果:http://localhost:8003/templates/home.html

和之前的效果是一模一樣的吧?

前幾天在網(wǎng)上找了一個(gè)SpringBoot的中文開發(fā)指南,有需要的請點(diǎn)擊這里下載吧。

這篇文章的完整版代碼,github地址如下:https://github.com/zhangconan/LearnSpringBoot

項(xiàng)目下載地址:LearnSpringBoot_jb51.rar

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • FeignClient如何脫離eureka自定義URL

    FeignClient如何脫離eureka自定義URL

    這篇文章主要介紹了FeignClient如何脫離eureka自定義URL,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringCloud2020.0.x版UnderTow AccessLog相關(guān)配置簡介

    SpringCloud2020.0.x版UnderTow AccessLog相關(guān)配置簡介

    本文詳細(xì)介紹了SpringCloud中AccessLog的相關(guān)配置,我們可以根據(jù)文中的相關(guān)數(shù)據(jù)配置出所需的AccessLog的信息以及格式,感興趣的小伙伴可以參考一下
    2021-08-08
  • 使用Java發(fā)送帶附件的附件的示例

    使用Java發(fā)送帶附件的附件的示例

    這篇文章主要介紹了使用Java發(fā)送帶附件的附件的方法,使用到了JavaMail這個(gè)API,需要的朋友可以參考下
    2015-11-11
  • Java實(shí)現(xiàn)數(shù)據(jù)庫連接池簡易教程

    Java實(shí)現(xiàn)數(shù)據(jù)庫連接池簡易教程

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)數(shù)據(jù)庫連接池簡易教程,感興趣的小伙伴們可以參考一下
    2016-01-01
  • java面向?qū)ο笤O(shè)計(jì)原則之開閉原則示例解析

    java面向?qū)ο笤O(shè)計(jì)原則之開閉原則示例解析

    這篇文章主要介紹了java面向?qū)ο笤O(shè)計(jì)原則之開閉原則的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-10-10
  • Java責(zé)任鏈設(shè)計(jì)模式實(shí)例分析

    Java責(zé)任鏈設(shè)計(jì)模式實(shí)例分析

    這篇文章主要介紹了Java責(zé)任鏈設(shè)計(jì)模式,結(jié)合實(shí)例形式詳細(xì)分析了Java責(zé)任鏈設(shè)計(jì)模式的原理與相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Java數(shù)據(jù)結(jié)構(gòu)之線段樹詳解

    Java數(shù)據(jù)結(jié)構(gòu)之線段樹詳解

    線段樹是一種二叉搜索樹,與區(qū)間樹相似,它將一個(gè)區(qū)間劃分成一些單元區(qū)間,每個(gè)單元區(qū)間對應(yīng)線段樹中的一個(gè)葉結(jié)點(diǎn)。本文將介紹線段樹的Java實(shí)現(xiàn)代碼,需要的可以參考一下
    2022-01-01
  • Java可重入鎖的實(shí)現(xiàn)示例

    Java可重入鎖的實(shí)現(xiàn)示例

    在java中,可重入鎖分為兩種,即synchronized鎖以及ReentrantLock及其實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Java Collection集合遍歷運(yùn)行代碼實(shí)例

    Java Collection集合遍歷運(yùn)行代碼實(shí)例

    這篇文章主要介紹了Java Collection集合遍歷運(yùn)行代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Maven項(xiàng)目配置Tomcat的兩種方式

    Maven項(xiàng)目配置Tomcat的兩種方式

    本文主要介紹了Maven項(xiàng)目配置Tomcat的兩種方式,一種是用idea開發(fā),另一種是eclipse開發(fā),具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-05-05

最新評論

任丘市| 漠河县| 加查县| 镇远县| 天津市| 集安市| 四子王旗| 中卫市| 大余县| 武陟县| 永春县| 普兰店市| 台南县| 金阳县| 寻乌县| 南投市| 仁怀市| 阜南县| 昌吉市| 许昌市| 三河市| 新田县| 兴城市| 新宁县| 司法| 白银市| 安平县| 延津县| 伊宁市| 上杭县| 宝坻区| 江阴市| 永胜县| 丰县| 孝昌县| 祥云县| 榆社县| 浦江县| 孝感市| 太白县| 昌吉市|