Spring Boot 2系列(十五):热部署
Spring Boot 开发环境支持热部署,即修改代码后保存后,自动编译运行服务。不用每次手动重启服务。
此篇是作为Spring Boot实践系列(三):打war包部署到外部Tomcat和Spring Boot实践系列(十四):配置文件profile属性和部署jar包的延续。
引入devtools
Spring Boot 支持热部署,官方提供了热部署的模块spring-boot-devtools
,如需在项目pom.xml
文件添加该依赖。
1 | <!-- 热部署 --> |
热部署在开发环境非常的方便高效,不用手动编译重启。而在生产中大多是直接更新整个jar
包的情况比较多,可以在热部署依赖配置添加作用范围<scope>provided</scope>
spring-boot-devtools
是监视类路径下的文件发生更改时就重启应用,某些资源文件(如静态资源文件和视图模板)的更改是不会重启应用的。
还有一些其它热部署的组件,如 Spring Loaded, JRebel(收费)。
IDEA开启自动编译
【Settings】>【Build, Execution, Deployment】> 【Compiler】 > 勾选:Build project automatically,【保存】
模板缓存配置
Spring Boot 支持的一些库使用了缓存来提高性能,例如,模板引擎缓存已编译的模板以避免重复解析模板文件。缓存静态资源在生产中非常有用,但在开发中会造成不便,在修改静态资源文件后得不到想要的更新后的内容。而spring-boot-devtools
默认是禁用缓存的,所以推荐使用devtools
来做开发环境的热部署,就不用针对单项功能去控制缓存的启用/禁用。
当然 Spring Boot 也支持缓存选项的设置,通常在application.properties
文件中进行配置,也可在开发配置文件和生产配置文件分别配置,如下:
1 | # Thymeleaf Templates |
Spring Boot 2系列(十五):热部署
http://blog.gxitsky.com/2018/06/13/SpringBoot-15-commons-deploy/