亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解讀靜態(tài)資源訪問static-locations和static-path-pattern

 更新時間:2025年01月30日 07:51:09   作者:學(xué)習(xí)中的小亮  
本文主要介紹了Spring Boot中靜態(tài)資源的配置和訪問方式,包括靜態(tài)資源的默認前綴、默認地址、目錄結(jié)構(gòu)、訪問路徑以及靜態(tài)資源處理器的工作原理,通過配置文件和實現(xiàn)`WebMvcConfigurer`接口,可以自定義靜態(tài)資源目錄和訪問前綴

靜態(tài)資源訪問static-locations和static-path-pattern

靜態(tài)資源配置底層源碼

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		if (!this.resourceProperties.isAddMappings()) {
			logger.debug("Default resource handling disabled");
				return;
		}
        //配置訪問地址為/webjars/**時,去/META-INF/resources/webjars文件夾下尋找資源
		addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
		addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {
				            
        registration.addResourceLocations(this.resourceProperties.getStaticLocations());
		if (this.servletContext != null) {
				ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
				registration.addResourceLocations(resource);
		}
			});
		}

靜態(tài)資源默認前綴:

private String staticPathPattern = "/**";

靜態(tài)資源默認地址:

private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/",
				"classpath:/resources/", "classpath:/static/", "classpath:/public/" };

		/**
		 * Locations of static resources. Defaults to classpath:[/META-INF/resources/,
		 * /resources/, /static/, /public/].
		 */
private String[] staticLocations = CLASSPATH_RESOURCE_LOCATIONS;

靜態(tài)資源目錄

如果每個目錄下面都有相同的文件,那么訪問的優(yōu)先級為 META-INF>resources>static>public

靜態(tài)資源訪問前綴(默認無前綴)可以使用下面的yaml內(nèi)容來設(shè)置

spring:
  mvc:
    static-path-pattern: /liang/**  //會導(dǎo)致歡迎頁和favicon.ico失效

靜態(tài)資源存放地址(靜態(tài)文件只能存放在文件夾yuan里面)

spring:
  web:
    resources:
      static-locations: classpath:/yuan/

當配置文件如下

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

可以直接通過地址 http://localhost:8080/liang/a.png 直接進行訪問,查看到想要結(jié)果

當靜態(tài)訪問前綴為/**時,靜態(tài)資源目錄下有一個a.png,controller控制層的@RequestMapping("/a.png")。

得到結(jié)果

結(jié)論:請求進來,先去controller看能不能處理,不能處理的所有請求又都交給靜態(tài)資源處理器。靜態(tài)資源找不到就報404

為什么歡迎頁(index.html)有靜態(tài)資源訪問前綴就不能訪問了

通過 http://localhost:8080/liang/index.html可以直接訪問到界面,但是通過 http://localhost:8080/liang 或者 http://localhost:8080/ 都不能直接訪問到index。

但是如果把靜態(tài)資源訪問前綴去除,就可以通過 http://localhost:8080/ 訪問到index.html了.

這是因為底層做了處理

實現(xiàn)WebMvcConfigurer接口

會把自定義配置加載到默認的配置中

@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //registry.addResourceHandler("訪問的路徑").addResourceLocations("資源的路徑");
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
    }

配置文件中靜態(tài)資源目錄為

可以簡單理解為:實現(xiàn)WebMvcConfigurer接口,可以把自己自定義的一些配置加載到系統(tǒng)的默認配置中

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java編程基礎(chǔ)元素-運算符

    Java編程基礎(chǔ)元素-運算符

    這篇文章主要介紹了Java編程基礎(chǔ)元素-運算符,運算符就是在用變量或常量進行運算時,經(jīng)常需要用到的運算符,Java?提供了豐富的運算符,可分為算術(shù)運算符、關(guān)系運算符、邏輯運算符和位運算符,下面來看具體的內(nèi)容介紹吧
    2022-01-01
  • java 遞歸查詢所有子節(jié)點id的方法實現(xiàn)

    java 遞歸查詢所有子節(jié)點id的方法實現(xiàn)

    在多層次的數(shù)據(jù)結(jié)構(gòu)中,經(jīng)常需要查詢一個節(jié)點下的所有子節(jié)點,本文主要介紹了java 遞歸查詢所有子節(jié)點id的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • JVM,JRE和JDK的區(qū)別小結(jié)

    JVM,JRE和JDK的區(qū)別小結(jié)

    在Java環(huán)境配置和項目啟動中,JVM,JRE和JDK這三者的配置是項目啟動的基礎(chǔ)保證,本文就詳細的介紹一下這三者的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Spring 異常單元測試的解決

    Spring 異常單元測試的解決

    這篇文章主要介紹了Spring 異常單元測試的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Spring?Cloud?Gateway整合sentinel?實現(xiàn)流控熔斷的問題

    Spring?Cloud?Gateway整合sentinel?實現(xiàn)流控熔斷的問題

    本文給大家介紹下?spring?cloud?gateway?如何整合?sentinel實現(xiàn)流控熔斷,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友一起看看吧
    2022-02-02
  • Java進程cpu占用過高問題解決

    Java進程cpu占用過高問題解決

    這篇文章主要介紹了Java進程cpu占用過高問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot整合MybatisPlusGernerator實現(xiàn)逆向工程

    SpringBoot整合MybatisPlusGernerator實現(xiàn)逆向工程

    在我們寫項目的時候,我們時常會因為需要創(chuàng)建很多的項目結(jié)構(gòu)而頭疼,本文主要介紹了SpringBoot整合MybatisPlusGernerator實現(xiàn)逆向工程,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • SpringBoot接口惡意刷新和暴力請求的解決方法

    SpringBoot接口惡意刷新和暴力請求的解決方法

    在實際項目使用中,必須要考慮服務(wù)的安全性,當服務(wù)部署到互聯(lián)網(wǎng)以后,就要考慮服務(wù)被惡意請求和暴力攻擊的情況,所以本文給大家介紹了SpringBoot接口惡意刷新和暴力請求的解決方法,需要的朋友可以參考下
    2024-11-11
  • java獲取兩個List集合的交集代碼示例

    java獲取兩個List集合的交集代碼示例

    這篇文章主要給大家介紹了關(guān)于java獲取兩個List集合交集的相關(guān)資料,我們可以使用Stream操作來對集合進行一系列的操作,其中包括求交集,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • java之Thread不捕獲異常默認處理邏輯

    java之Thread不捕獲異常默認處理邏輯

    這篇文章主要介紹了java之Thread不捕獲異常默認處理邏輯,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論