方法如下:
1.在pom文件中引入 devtools 依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true, 依賴不會傳遞, 該項目依賴devtools; 之后依賴boot項目的項目如果想要使用devtools, 需要重新引入 --> <optional>true</optional> </dependency>
2.在application.properties 文件中碼上以下內容:
spring.thymeleaf.cache=true //緩存(開發時設置為false)
spring.devtools.restart.enabled=true //開啟
spring.devtools.restart.additional-paths=src/main/java //監聽目錄(可不設置)
3.原理
devtools如何實現頁面熱部署?
即頁面修改后會立即生效,這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現。
實現類文件熱部署(類文件修改后不會立即生效),實現對屬性文件的熱部署。即devtools會監聽classpath下的文件變動,並且會立即重啟應用(發生在保存時機),注意:因為其采用的虛擬機機制,該項重啟是很快的。
1)base classloader (Base類加載器):加載不改變的Class,例如:第三方提供的jar包。
2)restart classloader(Restart類加載器):加載正在開發的Class。
為什么重啟很快?
因為重啟的時候只是加載了在開發的Class,沒有重新加載第三方的jar包。