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

SpringBoot 如何實(shí)時(shí)刷新靜態(tài)文件

 更新時(shí)間:2021年12月15日 11:23:41   作者:weixin_34129145  
這篇文章主要介紹了SpringBoot如何實(shí)時(shí)刷新靜態(tài)文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

你是否受夠了每次修改靜態(tài)文件都要重啟服務(wù)器?

有時(shí)候在一些公司前后端的職責(zé)沒有那么的明確,往往后臺(tái)人員也要去寫一些頁面,像jsp頁面,或者其他的后臺(tái)模板頁面等。默認(rèn)情況下Java文件會(huì)被編譯為class文件,并且靜態(tài)資源文件也被一并的編譯進(jìn)class目錄下面,這樣導(dǎo)致我們每次修改靜態(tài)文件都要重新編譯進(jìn)class目錄,很麻煩,有沒有什么簡便的方案呢?

方案

Spring Boot在MVC中有個(gè)WebMvcProperties的配置類,還有個(gè)ResourceProperties資源配置類。

默認(rèn)情況下Spring Boot從下面的目錄下尋找靜態(tài)資源文件

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

默認(rèn)的靜態(tài)資源路徑匹配為/**。

修改Spring Boot配置,注意static-locations為靜態(tài)資源在自己電腦中的絕對(duì)路徑配置

spirng
  resources:
    chain:
      cache: false
    static-locations: file:///Users/aihe/Desktop/taqu/ticket-system/src/main/resources/static/,file:///Users/aihe/Desktop/taqu/ticket-system/src/main/resources/
  mvc:
    static-path-pattern: /static/**

以后再修改靜態(tài)文件的時(shí)候,js,html,css等即可立即生效,也不需要熱部署的插件什么的。算是一個(gè)小tip吧~

SpringBoot靜態(tài)資源不重啟刷新,自定義配置

經(jīng)常做Spring Boot開發(fā),有很多時(shí)候不需要前后端分離,比如后管系統(tǒng)。開發(fā)的時(shí)候每次修改頁面就需要重啟,極度不方便。其實(shí)Spring Boot設(shè)計(jì)是不需要重啟的,只是我們沒注意用法而已。

1. demo

pom & main

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.6.RELEASE</version>
        </dependency>
    </dependencies>  
@SpringBootApplication
public class BootMain {
    public static void main(String[] args) {
        SpringApplication.run(BootMain.class, args);
    }
}

靜態(tài)資源文件,查詢官方docs文檔放在"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"任意目錄,即可加載

啟動(dòng)main,訪問http://localhost:8082/index.html,筆者自定義了端口

2. 如何不重啟修改生效

其實(shí)很簡單,Spring Boot生效的目錄在target目錄,并非我們的resource目錄

Spring Boot只認(rèn)target,我們修改的resources怎么會(huì)自動(dòng)編譯target呢,所以要重啟了!?

解決方法有很多,常見的有mvn compile即可,或者自動(dòng)編譯(不推薦,因?yàn)橘Y源文件,java也會(huì)編譯),其實(shí)有一種非常簡單的方法

每次修改后,右鍵,recompile即可,我已經(jīng)修改了,來試試

生效了,?

3. 原理

了解原理有利于我們自定義Spring Boot,從根源上來使用它

可以看到,靜態(tài)資源加載的代碼是

registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/")

里面的參數(shù)請(qǐng)自動(dòng)忽略,因?yàn)槲覀兛梢宰远x

這是為什么很多教程說自定義這個(gè)方法即可,不重啟刷新靜態(tài)資源,因?yàn)榻坛淌侵付速Y源文件的路徑,編譯后的路徑就是資源路徑

常用的自定義spring.mvc.staticPathPattern = "/**",默認(rèn)/**,配置pattern,url的路徑參數(shù)

@ConfigurationProperties(prefix = "spring.mvc")
public class WebMvcProperties {
    private String staticPathPattern = "/**";

spring.resources.staticLocations = classpath:/html/,默認(rèn)如下,這是Spring Boot默認(rèn)配置的的路徑

@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)
public class ResourceProperties {
 
	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;

小結(jié)一下

遇到很多問題,不能人云亦云,百度啥的,其實(shí)很簡單,看一下Spring源碼,試一下,一切都很簡單。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java的Jackson框架實(shí)現(xiàn)輕易轉(zhuǎn)換JSON

    java的Jackson框架實(shí)現(xiàn)輕易轉(zhuǎn)換JSON

    本篇文章主要介紹了java的Jackson框架實(shí)現(xiàn)輕易轉(zhuǎn)換JSON,Jackson將Java對(duì)象轉(zhuǎn)換成json對(duì)象和xml文檔,同樣也可以將json、xml轉(zhuǎn)換成Java對(duì)象,有興趣的可以了解一下。
    2017-02-02
  • mybatis-plus處理blob字段的完整示例代碼

    mybatis-plus處理blob字段的完整示例代碼

    在Spring Boot項(xiàng)目中使用MyBatis-Plus處理longblob字段時(shí),我們可以按照本文的步驟進(jìn)行操作,假設(shè) longblob 存儲(chǔ)的是字符串?dāng)?shù)據(jù),本文給大家提供完整示例代碼,感興趣的朋友參考下
    2023-12-12
  • java生成縮略圖的方法示例

    java生成縮略圖的方法示例

    這篇文章主要介紹了java生成縮略圖的方法,結(jié)合具體實(shí)例形式分析了java生成縮略圖過程中所涉及的各種常見的圖形處理技巧,需要的朋友可以參考下
    2017-03-03
  • 微服務(wù)Springcloud之Feign的基本使用

    微服務(wù)Springcloud之Feign的基本使用

    這篇文章主要介紹了微服務(wù)Springcloud之Feign的基本使用,Spring?Cloud集成Feign并對(duì)其進(jìn)行了增強(qiáng),使Feign支持了Spring?MVC注解,需要的朋友可以參考下
    2023-03-03
  • Java基礎(chǔ)之集合Set詳解

    Java基礎(chǔ)之集合Set詳解

    這篇文章主要介紹了Java基礎(chǔ)之集合Set詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • java編程無向圖結(jié)構(gòu)的存儲(chǔ)及DFS操作代碼詳解

    java編程無向圖結(jié)構(gòu)的存儲(chǔ)及DFS操作代碼詳解

    這篇文章主要介紹了java編程無向圖結(jié)構(gòu)的存儲(chǔ)及DFS操作代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • 使用sharding-jdbc實(shí)現(xiàn)水平分庫+水平分表的示例代碼

    使用sharding-jdbc實(shí)現(xiàn)水平分庫+水平分表的示例代碼

    本文主要介紹了使用sharding-jdbc實(shí)現(xiàn)水平分庫+水平分表,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • java對(duì)象轉(zhuǎn)成byte數(shù)組的3種方法

    java對(duì)象轉(zhuǎn)成byte數(shù)組的3種方法

    這篇文章主要為大家詳細(xì)介紹了java對(duì)象轉(zhuǎn)成byte數(shù)組的3種方法,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2018-06-06
  • Java8 Stream Collectors收集器使用方法解析

    Java8 Stream Collectors收集器使用方法解析

    這篇文章主要介紹了Java8 Stream Collectors收集器使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Springboot jar主清單屬性丟失解決方案

    Springboot jar主清單屬性丟失解決方案

    這篇文章主要介紹了Springboot jar主清單屬性丟失解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論