欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中靜態(tài)資源處理的7個技巧分享

 更新時間:2025年05月13日 08:24:22   作者:風(fēng)象南  
在Web應(yīng)用開發(fā)中,靜態(tài)資源(如CSS、JavaScript、圖片等)的處理是一個基礎(chǔ)但重要的環(huán)節(jié),本文將介紹SpringBoot中7種靜態(tài)資源處理技巧,希望對大家有所幫助

在Web應(yīng)用開發(fā)中,靜態(tài)資源(如CSS、JavaScript、圖片等)的處理是一個基礎(chǔ)但重要的環(huán)節(jié)。

SpringBoot作為一個強(qiáng)大的應(yīng)用框架,為開發(fā)者提供了多種靈活處理靜態(tài)資源的方式。

本文將介紹SpringBoot中7種靜態(tài)資源處理技巧。

1. 利用默認(rèn)靜態(tài)資源位置

SpringBoot默認(rèn)提供了四個靜態(tài)資源目錄:

/static
/public
/resources
/META-INF/resources

這些目錄都位于classpath下,按照上述順序優(yōu)先級依次降低。將資源放入這些目錄,即可通過http://localhost:8080/資源名直接訪問。

// 示例:放在/static/css/main.css的資源
// 可通過以下URL訪問
// http://localhost:8080/css/main.css

2. 自定義靜態(tài)資源位置

可以通過配置修改默認(rèn)的靜態(tài)資源位置:

spring:
  web:
    resources:
      static-locations:
        - classpath:/custom/
        - classpath:/static/
        - file:/path/to/external/resources/

這樣可以添加自定義目錄,甚至是服務(wù)器上的絕對路徑。

3. 使用WebJars管理前端依賴

WebJars提供了一種通過Maven或Gradle管理前端資源的方式,使它們像Java依賴一樣易于管理。

<!-- pom.xml中添加依賴 -->
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.6.0</version>
</dependency>

然后可以這樣訪問:

<script src="/webjars/jquery/3.6.0/jquery.min.js"></script>

4. 資源版本控制

SpringBoot支持靜態(tài)資源的版本控制,可以解決瀏覽器緩存問題:

spring:
  web:
    resources:
      chain:
        strategy:
          content:
            enabled: true
            paths: /**

這樣SpringBoot會基于內(nèi)容生成指紋,如:

<link href="/css/main-a2b3c4d5e6.css" rel="stylesheet">

5. 配置靜態(tài)資源緩存

可以為靜態(tài)資源配置緩存控制:

spring:
  web:
    resources:
      cache:
        period: 3600
        cachecontrol:
          max-age: 3600
          must-revalidate: true

這將為靜態(tài)資源添加適當(dāng)?shù)腍TTP緩存頭,提高性能。

6. 配置靜態(tài)資源訪問路徑前綴

可以為所有靜態(tài)資源添加統(tǒng)一的訪問前綴:

spring:
  mvc:
    static-path-pattern: /resources/**

配置后,所有靜態(tài)資源都需要通過/resources/前綴訪問:

http://localhost:8080/resources/css/main.css

這有助于區(qū)分API和靜態(tài)資源,便于管理。

7. 使用ResourceHandlers自定義資源處理

對于更復(fù)雜的需求,可以通過實(shí)現(xiàn)WebMvcConfigurer接口自定義資源處理器:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 將/files/**映射到file:/var/www/files/
        registry.addResourceHandler("/files/**")
                .addResourceLocations("file:/var/www/files/")
                .setCachePeriod(3600)
                .resourceChain(true)
                .addResolver(new VersionResourceResolver()
                        .addContentVersionStrategy("/**"));
                
        // 特定版本的資源處理
        registry.addResourceHandler("/js/**")
                .addResourceLocations("classpath:/static/js/")
                .resourceChain(true)
                .addResolver(new VersionResourceResolver()
                        .addFixedVersionStrategy("v1", "/**"));
    }
}

這種方式提供了最大的靈活性,可以為不同路徑配置不同的處理策略。

總結(jié)

SpringBoot為靜態(tài)資源處理提供了豐富的功能和靈活的配置選項(xiàng),可以根據(jù)項(xiàng)目需求,選擇使用默認(rèn)配置、簡單自定義或高級配置方式。

合理利用這些技巧,可以在SpringBoot項(xiàng)目中更好地管理靜態(tài)資源,同時保證開發(fā)的便捷性。

到此這篇關(guān)于SpringBoot中靜態(tài)資源處理的7個技巧分享的文章就介紹到這了,更多相關(guān)SpringBoot靜態(tài)資源處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Exchanger并發(fā)類使用方法

    Java Exchanger并發(fā)類使用方法

    這篇文章主要介紹了Java Exchanger并發(fā)類使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • java split結(jié)果去除空字符串的方法實(shí)現(xiàn)

    java split結(jié)果去除空字符串的方法實(shí)現(xiàn)

    在Java開發(fā)中,我們經(jīng)常需要對字符串進(jìn)行分割操作,本文主要介紹了java split結(jié)果去除空字符串的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • SpringBoot使用AOP實(shí)現(xiàn)統(tǒng)計(jì)全局接口訪問次數(shù)詳解

    SpringBoot使用AOP實(shí)現(xiàn)統(tǒng)計(jì)全局接口訪問次數(shù)詳解

    這篇文章主要介紹了SpringBoot通過AOP實(shí)現(xiàn)對全局接口訪問次數(shù)的統(tǒng)計(jì),文章從相關(guān)問題展開全文內(nèi)容詳情,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • Java軟件編程培訓(xùn)機(jī)構(gòu)靠譜嗎

    Java軟件編程培訓(xùn)機(jī)構(gòu)靠譜嗎

    隨著網(wǎng)絡(luò)信息化的快速發(fā)展,Java培訓(xùn)受到越來越多人的青睞,目前Java工程師的薪資水平在不斷攀升,但是有好多企業(yè)還是招不到合適的人才,為什么呢
    2017-04-04
  • Spring?Boot實(shí)現(xiàn)WebSocket實(shí)時通信

    Spring?Boot實(shí)現(xiàn)WebSocket實(shí)時通信

    本文主要介紹了Spring?Boot實(shí)現(xiàn)WebSocket實(shí)時通信,包含實(shí)現(xiàn)實(shí)時消息傳遞和群發(fā)消息等功能,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • java向多線程中傳遞參數(shù)的三種方法詳細(xì)介紹

    java向多線程中傳遞參數(shù)的三種方法詳細(xì)介紹

    但在多線程的異步開發(fā)模式下,數(shù)據(jù)的傳遞和返回和同步開發(fā)模式有很大的區(qū)別。由于線程的運(yùn)行和結(jié)束是不可預(yù)料的,因此,在傳遞和返回?cái)?shù)據(jù)時就無法象函數(shù)一樣通過函數(shù)參數(shù)和return語句來返回?cái)?shù)據(jù)
    2012-11-11
  • java爬取豆瓣電影示例解析

    java爬取豆瓣電影示例解析

    這篇文章主要介紹了java爬取豆瓣電影示例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringBoot導(dǎo)出Excel表格到指定路徑的代碼詳解

    SpringBoot導(dǎo)出Excel表格到指定路徑的代碼詳解

    Spring Boot導(dǎo)出Excel通常涉及到使用第三方庫如Apache POI或者XlsxWriter等,它們能幫助你在Spring應(yīng)用中生成并下載Excel文件,那么SpringBoot如何導(dǎo)出Excel表格到指定路徑,本文將給大家詳細(xì)的介紹一下
    2024-07-07
  • java中調(diào)用super的實(shí)例講解

    java中調(diào)用super的實(shí)例講解

    在本篇文章里小編給大家分享了一篇關(guān)于java中調(diào)用super的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • 談?wù)凷pring Boot 數(shù)據(jù)源加載及其多數(shù)據(jù)源簡單實(shí)現(xiàn)(小結(jié))

    談?wù)凷pring Boot 數(shù)據(jù)源加載及其多數(shù)據(jù)源簡單實(shí)現(xiàn)(小結(jié))

    這篇文章主要介紹了談?wù)凷pring Boot 數(shù)據(jù)源加載及其多數(shù)據(jù)源簡單實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04

最新評論