spring boot 1.5.4 集成devTools(五)
上一篇:spring boot 1.5.4 整合JSP(四)
1.1 Spring Boot集成devTools
spring boot集成devTools源碼:https://git.oschina.net/wyait/springboot1.5.4.git
實現步驟:
Eclipse Project 必須開啟了Build Automatically
1. pom引入devTools依賴和插件配置
<!-- devtools-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<!--optional=true,依賴不會傳遞,該項目依賴
</dependency>
2.可以根據需要調整application.properties文件(具體配置內容參考:application.propertis)
在application.properties中配置spring.devtools.restart.enabled=false,此時restart類加載器還會初始化,但不會監視文件更新。
在SprintApplication.run之前調用System.setProperty(“spring.devtools.restart.enabled
默認情況下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public這些文件夾下的文件修改不會使應用重啟,但是會重新加載(devtools內嵌了一個LiveReload server,當資源發生改變時,瀏覽器刷新)。
如果想改變默認的設置,可以自己設置不重啟的目錄:spring.devtools.restart.exclude=static/**,public/**,這樣的話,就只有這兩個目錄下的文件修改不會導致restart操作了。
如果要在保留默認設置的基礎上還要添加其他的排除目錄:spring.devtools.restart.additional-exclude
如果想要使得當非classpath下的文件發生變化時應用得以重啟,使用:spring.devtools.restart.additional-paths,這樣devtools就會將該目錄列入了監聽範圍。
3. 啟動,測試
修改類–>保存:應用會重啟
修改配置文件–>保存:應用會重啟
修改頁面–>保存:應用不會重啟,但會重新加載,頁面會刷新(原理是將spring.thymeleaf.cache設為false,參考:Spring Boot配置模板引擎)
集成問題說明
如果使用dubeg As啟動,會進入斷點:SilentExitException。正常啟動沒有該問題。
(1) devtools可以實現頁面熱部署(即頁面修改後會立即生效,這個可以直接在application.properties文件中配置spring.thymeleaf.cache=false來實現),實現類文件熱部署(類文件修改後不會立即生效),實現對屬性文件的熱部署。即devtools會監聽classpath下的文件變動,並且會立即重啟應用(發生在保存時機),註意:因為其采用的虛擬機機制,該項重啟是很快的
(2)配置了後在修改java文件後也就支持了熱啟動,不過這種方式是屬於項目重啟(速度比較快的項目重啟),會清空session中的值,也就是如果有用戶登陸的話,項目重啟後需要重新登陸。默認情況下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public這些文件夾下的文件修改不會使應用重啟,但是會重新加載(devtools內嵌了一個LiveReload server,當資源發生改變時,瀏覽器刷新)。
spring boot系列文章:
spring boot 1.5.4 概述(一)
spring boot 1.5.4 入門和原理(二)
spring boot 1.5.4 之web開發(三)
spring boot 1.5.4 整合JSP(四)
spring boot 1.5.4 集成devTools(五)
spring boot 1.5.4 集成JdbcTemplate(六)
spring boot 1.5.4 集成spring-Data-JPA(七)
本文出自 “IT技術解決方案” 博客,請務必保留此出處http://wyait.blog.51cto.com/12674066/1968302
spring boot 1.5.4 集成devTools(五)