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

SpringBoot靜態(tài)資源與首頁(yè)配置實(shí)現(xiàn)原理深入分析

 更新時(shí)間:2022年10月10日 08:32:28   作者:Decade0712  
最近在做SpringBoot項(xiàng)目的時(shí)候遇到了“白頁(yè)”問(wèn)題,通過(guò)查資料對(duì)SpringBoot訪問(wèn)靜態(tài)資源做了總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

一、靜態(tài)資源導(dǎo)入

關(guān)鍵源碼可以看WebMvcAutoConfiguration這個(gè)類下面的addResourceHandlers方法

在這個(gè)方法中,我們有幾個(gè)重點(diǎn)需要了解一下

1、webjars

可以理解為以maven的形式引入web的相關(guān)jar包

請(qǐng)求路徑為/webjars/**的,都會(huì)去classpath:/META-INF/resources/webjars/下尋找相關(guān)的靜態(tài)資源

2、靜態(tài)資源映射規(guī)則

如果在項(xiàng)目中要使用我們自己導(dǎo)入的靜態(tài)資源,它的映射規(guī)則是怎么樣的呢,我們分析源碼可以得出

以下四個(gè)路徑的中存放的靜態(tài)資源可以被識(shí)別,優(yōu)先

resource(注意,此處是resource下面的resource文件夾)>static (默認(rèn))>public

"classpath:/META-INF/resources/"
"classpath:/resources/"
"classpath:/static/" 
"classpath:/public/"

3、自定義靜態(tài)資源路徑

我們可以使用spring.web.resources.static-locations

在yaml文件中自定義靜態(tài)資源文件的路徑,例如我們限制靜態(tài)文件都必須放在static目錄下

也可以使用spring.mvc.static-path-pattern,當(dāng)前項(xiàng)目 + static-path-pattern + 靜態(tài)資源名 = 靜態(tài)資源文件夾下找

spring:
  web:
    resources:
      static-locations: classpath:/static/
  mvc:
    static-path-pattern: /static/**

隨后我們?cè)L問(wèn)一下靜態(tài)資源,發(fā)現(xiàn)只有放在static下面可以被訪問(wèn)到

二、首頁(yè)配置和圖標(biāo)

1、首頁(yè)配置

springboot它會(huì)去找靜態(tài)資源文件夾下的index.html(注意不能配置spring.mvc.static-path-pattern)或者是controller處理/index轉(zhuǎn)發(fā)的頁(yè)面

下面是WebMvcAutoConfiguration這個(gè)類中關(guān)于首頁(yè)的相關(guān)方法

@Bean
public WelcomePageHandlerMapping welcomePageHandlerMapping(ApplicationContext applicationContext, FormattingConversionService mvcConversionService, ResourceUrlProvider mvcResourceUrlProvider) {
    WelcomePageHandlerMapping welcomePageHandlerMapping = new WelcomePageHandlerMapping(new TemplateAvailabilityProviders(applicationContext), applicationContext, this.getWelcomePage(), this.mvcProperties.getStaticPathPattern());
    welcomePageHandlerMapping.setInterceptors(this.getInterceptors(mvcConversionService, mvcResourceUrlProvider));
    welcomePageHandlerMapping.setCorsConfigurations(this.getCorsConfigurations());
    return welcomePageHandlerMapping;
}
private Resource getWelcomePage() {
    String[] var1 = this.resourceProperties.getStaticLocations();
    int var2 = var1.length;
    for(int var3 = 0; var3 < var2; ++var3) {
        String location = var1[var3];
        Resource indexHtml = this.getIndexHtml(location);
        if (indexHtml != null) {
            return indexHtml;
        }
    }
    ServletContext servletContext = this.getServletContext();
    if (servletContext != null) {
        return this.getIndexHtml((Resource)(new ServletContextResource(servletContext, "/")));
    } else {
        return null;
    }
}
private Resource getIndexHtml(String location) {
    return this.getIndexHtml(this.resourceLoader.getResource(location));
}
private Resource getIndexHtml(Resource location) {
    try {
        Resource resource = location.createRelative("index.html");
        if (resource.exists() && resource.getURL() != null) {
            return resource;
        }
    } catch (Exception var3) {
    }
    return null;
}

2、圖標(biāo)

官網(wǎng)是說(shuō)在靜態(tài)資源路徑下放置一個(gè)favicon.ico,spring boot就會(huì)自動(dòng)識(shí)別

如圖

圖標(biāo)加載成功 可能會(huì)因?yàn)榫彺婕虞d不出來(lái) 清除緩存多試幾次就行了

到此這篇關(guān)于SpringBoot靜態(tài)資源與首頁(yè)配置實(shí)現(xiàn)原理深入分析的文章就介紹到這了,更多相關(guān)SpringBoot靜態(tài)資源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中使用MongoDB數(shù)據(jù)庫(kù)實(shí)例Demo

    Java中使用MongoDB數(shù)據(jù)庫(kù)實(shí)例Demo

    MongoDB是由C++語(yǔ)言編寫(xiě)的,基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是最接近于關(guān)系型數(shù)據(jù)庫(kù)的NoSQL數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于Java中使用MongoDB數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • 一文詳解Java過(guò)濾器攔截器實(shí)例逐步掌握

    一文詳解Java過(guò)濾器攔截器實(shí)例逐步掌握

    這篇文章主要為大家介紹了Java過(guò)濾器攔截器實(shí)例詳解逐步掌握,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能

    SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能

    Milvus?是一種高性能、高擴(kuò)展性的向量數(shù)據(jù)庫(kù),可在從筆記本電腦到大型分布式系統(tǒng)等各種環(huán)境中高效運(yùn)行,Deeplearning4j(DL4J)是一個(gè)開(kāi)源的深度學(xué)習(xí)框架,專門為Java和Scala開(kāi)發(fā),本文給大家介紹了SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能
    2024-10-10
  • javaweb中ajax請(qǐng)求后臺(tái)servlet(實(shí)例)

    javaweb中ajax請(qǐng)求后臺(tái)servlet(實(shí)例)

    下面小編就為大家?guī)?lái)一篇javaweb中ajax請(qǐng)求后臺(tái)servlet(實(shí)例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • SpringCloud環(huán)境搭建過(guò)程之Rest使用小結(jié)

    SpringCloud環(huán)境搭建過(guò)程之Rest使用小結(jié)

    這篇文章主要介紹了SpringCloud環(huán)境搭建之Rest使用,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • MyBatis類型處理器TypeHandler的作用及說(shuō)明

    MyBatis類型處理器TypeHandler的作用及說(shuō)明

    這篇文章主要介紹了MyBatis類型處理器TypeHandler的作用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • java使用xpath解析xml示例分享

    java使用xpath解析xml示例分享

    XPath基于XML的樹(shù)狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹(shù)中找尋節(jié)點(diǎn)的能力,下面是一小示例,需要的朋友可以參考下
    2014-03-03
  • Java數(shù)據(jù)類型之引用數(shù)據(jù)類型解讀

    Java數(shù)據(jù)類型之引用數(shù)據(jù)類型解讀

    這篇文章主要介紹了Java數(shù)據(jù)類型之引用數(shù)據(jù)類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spring Boot項(xiàng)目搭建的兩種方式

    Spring Boot項(xiàng)目搭建的兩種方式

    springboot簡(jiǎn)單快捷方便的優(yōu)點(diǎn)深受用戶喜愛(ài),springboot開(kāi)發(fā)環(huán)境搭建過(guò)程是每個(gè)開(kāi)發(fā)者必須要做的工作,今天小編寫(xiě)的一篇教程關(guān)于Spring Boot項(xiàng)目搭建方法,通過(guò)兩種方式給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06
  • java操作cookie示例(刪除cookie)

    java操作cookie示例(刪除cookie)

    這篇文章主要介紹了java操作cookie示例,包括設(shè)置Cookie、讀取Cookie、刪除Cookie,需要的朋友可以參考下
    2014-02-02

最新評(píng)論

惠安县| 洞头县| 保康县| 清河县| 潢川县| 登封市| 青河县| 肃南| 元氏县| 余江县| 忻城县| 洪雅县| 泸定县| 镶黄旗| 清河县| 任丘市| 石屏县| 孟州市| 定结县| 阳信县| 南丹县| 马鞍山市| 建宁县| 涡阳县| 天峨县| 博爱县| 象山县| 青冈县| 吴江市| 蒙山县| 昭苏县| 太湖县| 阜城县| 神池县| 桐梓县| 大新县| 郸城县| 涞源县| 屏边| 偃师市| 东平县|