本文章來(lái)自【知識(shí)林】
在Springboot+Thymeleaf的開(kāi)發(fā)過(guò)程中房匆,默認(rèn)情況下修改到任何代碼都需要重新啟動(dòng)項(xiàng)目才能生效耸成,相信有過(guò)開(kāi)發(fā)經(jīng)驗(yàn)的人都會(huì)知道這是一件非常痛苦且非常浪費(fèi)時(shí)間的事情,多么希望能夠在修改html浴鸿、css井氢、js這些文件后刷新頁(yè)面就能顯示修改后的效果。
在網(wǎng)上找了很多熱啟動(dòng)岳链、熱部署的文檔花竞,基本都是一樣的,都是叫將spring.thymeleaf.cache
設(shè)置為false
掸哑,但根本不夠詳情约急,按照所描述的方法很難實(shí)現(xiàn)熱啟動(dòng)。下面介紹一下使用spring.thymeleaf.cache
和devtools
來(lái)解決html熱啟動(dòng)的問(wèn)題苗分。
- 準(zhǔn)備工作
所有代碼都可以直接拷貝上一篇文章《Thymeleaf 之 HelloWorld》厌蔽。
在html頁(yè)面中如果將<h1>Hello : <b th:text="${name}">姓名</b></h1>
修改為<h1>你好 : <b th:text="${name}">姓名</b></h1>
,刷新頁(yè)面是沒(méi)有任何改變的俭嘁,只是重新啟動(dòng)項(xiàng)目頁(yè)面才會(huì)由Hello : 知識(shí)林
變成:你好 : 知識(shí)林
躺枕。
-
spring.thymeleaf.cache=false
方式
1. 在`application.properties`中加入配置:`spring.thymeleaf.cache=false`服猪;
2. 運(yùn)行入口函數(shù):?jiǎn)?dòng)`RootApplication`里的`main`函數(shù)供填,啟動(dòng)成功后再停止(這步只需要執(zhí)行一次即可拐云,如果直接執(zhí)行第三步將無(wú)法熱啟動(dòng));
3. 使用`maven`方式啟動(dòng):`mvn spring-boot:run`近她。
- 使用
devtools
方式
增加maven的devtools
依賴(lài)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
增加maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
注意:<optional>true</optional>
只有設(shè)置為true
時(shí)才會(huì)熱啟動(dòng)叉瘩,即當(dāng)修改了html、css粘捎、js等這些靜態(tài)資源后不用重啟項(xiàng)目直接刷新即可薇缅。
如果需要在修改java
文件后都能自動(dòng)更新,則需要做一點(diǎn)小改動(dòng):
將:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
修改為:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
配置了<fork>true</fork>
后在修改java
文件后也就支持了熱啟動(dòng)攒磨,不過(guò)這種方式是屬于項(xiàng)目重啟(速度比較快的項(xiàng)目重啟)泳桦,會(huì)清空session
中的值,也就是如果有用戶(hù)登陸的話娩缰,項(xiàng)目重啟后需要重新登陸灸撰。
本文章來(lái)自【知識(shí)林】