概述
- 开发过程中常常会改动代码,为了查看修改每次都需要重新编译代码运行服务器,这样很影响开发效率
- 应用启动后会把编译好的Class文件加载的虚拟机中,正常情况下在项目修改了源文件是需要全部重新编译并重新加载(需要重启应用)。而热部署就是监听Class文件的变动,只把发生修改的Class重新加载,而不需要重启应用,使得开发变得简便
Spring Boot 实现热部署
方式一(Maven 插件 springloaded)
在 spring-boot-maven-plugin 插件中添加 springloaded 依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
通过 mvn spring-boot:run 启动应用(直接运行应用无效),修改 controller 中代码后结果会跟着变化
- 该方式只对 mvn spring-boot:run 这种方式启动应用有效,而对直接运行Application.java启动应用无效
- 如果使用 Thymeleaf 模板引擎,则需要把模板默认缓存设置为 false
spring.thymeleaf.cache=false
方式二(依赖 spring-boot-devtools 热部署模块)
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
修改 controller 代码后结果会跟着变化
IDEA 配置
WX20180119-163732@2x.png配置项一
WX20180119-163751@2x.png配置项二
WX20180119-163809@2x.png
网友评论