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

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

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

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

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

方案

Spring Boot在MVC中有個WebMvcProperties的配置類,還有個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)資源在自己電腦中的絕對路徑配置

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)文件的時候,js,html,css等即可立即生效,也不需要熱部署的插件什么的。算是一個小tip吧~

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

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

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/"任意目錄,即可加載

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

2. 如何不重啟修改生效

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

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

解決方法有很多,常見的有mvn compile即可,或者自動編譯(不推薦,因為資源文件,java也會編譯),其實有一種非常簡單的方法

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

生效了,?

3. 原理

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

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

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

里面的參數(shù)請自動忽略,因為我們可以自定義

這是為什么很多教程說自定義這個方法即可,不重啟刷新靜態(tài)資源,因為教程是指定了資源文件的路徑,編譯后的路徑就是資源路徑

常用的自定義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é)一下

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

相關(guān)文章

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

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

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

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

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

    java生成縮略圖的方法示例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論