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

springboot靜態(tài)資源映射規(guī)則的使用小結(jié)

 更新時(shí)間:2025年12月19日 09:24:14   作者:期待のcode  
本文主要介紹了springboot靜態(tài)資源映射規(guī)則,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

SpringBoot 對(duì)靜態(tài)資源的訪問(wèn)提供了自動(dòng)配置支持,核心依賴是 WebMvcAutoConfiguration 自動(dòng)配置類,其底層通過(guò)重寫 addResourceHandlers 方法,借助 ResourceHandlerRegistry(資源處理器注冊(cè)器)注冊(cè)多個(gè) ResourceHandler(資源處理器),分別定義了普通靜態(tài)資源和 WebJars 資源的存放路徑與 URL 訪問(wèn)路徑映射關(guān)系,同時(shí)遵循 Controller 映射優(yōu)先級(jí)高于靜態(tài)資源映射的規(guī)則,確保請(qǐng)求匹配的合理性。

springboot靜態(tài)資源映射規(guī)則源碼解析

首先我們找到 spring-boot-autoconfigure 的jar包,點(diǎn)擊 spring.factories 文件,找到 org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,
進(jìn)入 WebMvcAutoConfiguration 核心配置類

SpringBoot 之所以能訪問(wèn)到靜態(tài)資源,本質(zhì)是 WebMvcAutoConfiguration 自動(dòng)配置類中,通過(guò) addResourceHandlers 方法注冊(cè)了默認(rèn)的資源處理器

下面具體簡(jiǎn)述該函數(shù)代碼

第一部分:加載緩存配置

點(diǎn)擊進(jìn)入 ResourceProperties

這是靜態(tài)資源相關(guān)配置的綁定類,可以在 application.yml/properties 靜態(tài)資源配置中進(jìn)行設(shè)置和靜態(tài)資源有關(guān)的參數(shù),包括緩存時(shí)間等

第二部分:注冊(cè) WebJars 專用資源處理器

Webjars 是以 jar 包的方式引入靜態(tài)資源,Webjars 的網(wǎng)址為 https://www.webjars.org/

由代碼可知所有以 /webjars/ 開頭的請(qǐng)求都會(huì)被該處理器處理,WebJars 組件的 Jar 包中靜態(tài)資源默認(rèn)存放在 classpath:META-INF/resources/webjars/ 目錄下

下面以引入 jQuery 為例進(jìn)行演示
使用方式是導(dǎo)入 org.webjars 的相關(guān)依賴

        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.3.1</version>
        </dependency>

訪問(wèn)方式是訪問(wèn) classpath:META-INF/resources/webjars/ 目錄下的內(nèi)容,例如訪問(wèn) jquery 的路徑為:localhost:8080/webjars/jquery/3.3.1/jquery.js

第三部分是:注冊(cè)普通靜態(tài)資源處理器

點(diǎn)擊 getStaticPathPattern 函數(shù)進(jìn)入 WebMvcProperties 類中,里面 staticPathPattern 注冊(cè) URL 訪問(wèn)路徑模式,默認(rèn)是 /**(所有未被 Controller 處理的請(qǐng)求),可通過(guò)配置修改

點(diǎn)擊 getStaticLocations 函數(shù)進(jìn)入 ResourceProperties 類中,里面 staticLocations 讀取默認(rèn) / 自定義的靜態(tài)資源目錄,默認(rèn)值為四個(gè)目錄

優(yōu)先級(jí)從高到低(同名文件會(huì)優(yōu)先訪問(wèn)優(yōu)先級(jí)高的目錄):
靜態(tài)資源 classpath:/META-INF/resources/,即項(xiàng)目?jī)?nèi)實(shí)際存放路徑 src/main/resources/META-INF/resources/
靜態(tài)資源 classpath:/resources/,即項(xiàng)目?jī)?nèi)實(shí)際存放路徑 src/main/resources/resources/
靜態(tài)資源 classpath:/static/,即項(xiàng)目?jī)?nèi)實(shí)際存放路徑 src/main/resources/static/
靜態(tài)資源 classpath:/public/,即項(xiàng)目?jī)?nèi)實(shí)際存放路徑 src/main/resources/public/

下面我們來(lái)看在 WebMvcAutoConfiguration 自動(dòng)配置類中 SpringBoot 的默認(rèn)歡迎頁(yè)的自動(dòng)配置核心

welcomePageHandlerMapping 函數(shù)專門處理歡迎頁(yè)的 HandlerMapping

getWelcomePage() 函數(shù)用于查找靜態(tài)資源目錄和模板目錄下的 index.html,嚴(yán)格遵循靜態(tài)資源默認(rèn)目錄優(yōu)先級(jí)進(jìn)行查找,只要其中任意一個(gè)目錄下有 index.html,就返回該資源路徑。
另外,如果通過(guò) spring.web.resources.staticLocations 自定義了靜態(tài)資源目錄,getWelcomePage() 也會(huì)在自定義目錄中查找 index.html

由代碼可知這個(gè)方法的本質(zhì)是向 SpringMVC 容器注冊(cè)一個(gè) WelcomePageHandlerMapping 實(shí)例,它是一個(gè)請(qǐng)求處理器映射器(HandlerMapping),專門處理根路徑(/)請(qǐng)求,自動(dòng)查找并返回項(xiàng)目中的 index.html 作為歡迎頁(yè)。

訪問(wèn) http://localhost:8080/ 自動(dòng)打開歡迎頁(yè)的效果

到此這篇關(guān)于springboot靜態(tài)資源映射規(guī)則的使用小結(jié)的文章就介紹到這了,更多相關(guān)springboot靜態(tài)資源映射規(guī)則內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java的Servlet及其生命周期詳解

    Java的Servlet及其生命周期詳解

    這篇文章主要介紹了Java的Servlet及其生命周期詳解,Servlet是用Java編寫的服務(wù)器端程序,一門用于開發(fā)動(dòng)態(tài)web資源的技術(shù),其主要功能在與交互式的瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)web內(nèi)容,需要的朋友可以參考下
    2023-11-11
  • Java實(shí)現(xiàn)訂單超時(shí)自動(dòng)取消的7種方案

    Java實(shí)現(xiàn)訂單超時(shí)自動(dòng)取消的7種方案

    在電商、外賣、票務(wù)等系統(tǒng)中,訂單超時(shí)未支付自動(dòng)取消是一個(gè)常見(jiàn)的需求,這個(gè)功能乍一看很簡(jiǎn)單,甚至很多初學(xué)者會(huì)覺(jué)得:"不就是加個(gè)定時(shí)器么?" 但真到了實(shí)際工作中,細(xì)節(jié)的復(fù)雜程度往往會(huì)超乎預(yù)期,本文給大家介紹了Java實(shí)現(xiàn)訂單超時(shí)自動(dòng)取消的7種方案
    2024-12-12
  • Java中提供synchronized后為什么還要提供Lock

    Java中提供synchronized后為什么還要提供Lock

    這篇文章主要介紹了Java中提供synchronized后為什么還要提供Lock,在Java中提供了synchronized關(guān)鍵字來(lái)保證只有一個(gè)線程能夠訪問(wèn)同步代碼塊,下文更多相關(guān)資料需要的小伙伴可以參考一下
    2022-03-03
  • Java使用MethodHandle來(lái)替代反射,提高性能問(wèn)題

    Java使用MethodHandle來(lái)替代反射,提高性能問(wèn)題

    這篇文章主要介紹了Java使用MethodHandle來(lái)替代反射,提高性能問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Java項(xiàng)目開發(fā)中最容易犯的10個(gè)錯(cuò)誤與解決

    Java項(xiàng)目開發(fā)中最容易犯的10個(gè)錯(cuò)誤與解決

    作為 Java 開發(fā),我們?cè)趯懘a的過(guò)程中難免會(huì)產(chǎn)生各種奇思妙想的 bug ,有些 bug 就挺讓人無(wú)奈的,下面小編就和大家詳細(xì)介紹一下如何避免吧
    2026-03-03
  • MyBatis獲取自動(dòng)生成的(主)鍵值的方法

    MyBatis獲取自動(dòng)生成的(主)鍵值的方法

    本文主要介紹了MyBatis獲取自動(dòng)生成的(主)鍵值的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java?Collection?接口和常用方法綜合詳解

    Java?Collection?接口和常用方法綜合詳解

    Collection派生出三個(gè)子接口,Set代表不可重復(fù)的無(wú)序集合、List代表可重復(fù)的有序集合、Queue是java提供的隊(duì)列實(shí)現(xiàn),通過(guò)它們不斷的擴(kuò)展出很多的集合類,接下來(lái)我們?cè)敿?xì)介紹一下
    2021-11-11
  • Java中反射的應(yīng)用

    Java中反射的應(yīng)用

    這篇文章主要介紹了Java中反射的應(yīng)用,通過(guò)反射,我們可以在運(yùn)行時(shí)檢查類的屬性、方法和構(gòu)造函數(shù),并且可以在不知道類名的情況下創(chuàng)建對(duì)象、調(diào)用方法和訪問(wèn)屬性,需要的朋友可以參考下
    2023-10-10
  • java內(nèi)部測(cè)試類代碼詳解

    java內(nèi)部測(cè)試類代碼詳解

    這篇文章主要介紹了java內(nèi)部測(cè)試類代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 關(guān)于javaWeb中405錯(cuò)誤的解決方法

    關(guān)于javaWeb中405錯(cuò)誤的解決方法

    下面小編就為大家?guī)?lái)一篇關(guān)于javaWeb中405錯(cuò)誤的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05

最新評(píng)論

龙井市| 元谋县| 盐边县| 哈尔滨市| 海伦市| 亳州市| 鹤峰县| 伽师县| 宕昌县| 诸暨市| 孙吴县| 额尔古纳市| 乌兰县| 牡丹江市| 乌恰县| 南陵县| 伊川县| 怀宁县| 汉源县| 乐平市| 同心县| 饶河县| 乌鲁木齐县| 镇雄县| 东光县| 荥阳市| 沙田区| 宝坻区| 东宁县| 泰来县| 崇礼县| 清流县| 江阴市| 盐城市| 杭锦旗| 怀来县| 澳门| 锡林郭勒盟| 东光县| 尼玛县| 清镇市|