SpringBoot实现热部署的两种方式:即引入两种jar包,分别是devtools和springloaded
devtools使用:
spring为开发者提供名为spring-boot-devtools的模块来使SpringBoot应用支持热部署,提高开发效率。
添加devtools的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
另外spring-boot-maven-plugin插件要添加fork:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
注:如果没有这个,devtools不会起作用
devtools的热部署实现页面热不数据(页面修改后会立即生效,可以直接在application.properties文件中配置spring.thymeleaf.cache=false,idea也可以直接配置)
实现类文件热部署(修改后不会立即生效),热启动,是项目重启,热部署的项目重启比手动重启要快很多,但是工具中要设置自动编译
实现对属性文件的热部署devtools会监听classpath下的文件改动,并且重启应用
配置文件:
#热部署生效
spring.devtools.restart.enabled=true
#设置重启的目录
#spring.devtools.restart.additional-paths:src/main/java
#classpath目录下的WEB-INF文件夹内容修改不重启
#spring.devtools.restart.exclude:WEB-INF/**
注:如果是eclipse,上述操作实现热部署,但idea还需要如下配置:
idea:File—Settings—Build,Execution,Deployment—Compiler勾选Make project automatically
按快捷键:Ctrl+Shift+Alt+/ 选Registry:
勾选compiler.automake.all.when.app.running
注:项目改完之后不会立即生效,项目自动重启,重启之后再操作