前言
在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果。这种开发体验无疑是很差的,Springboot为我们提供了devtools来帮助我们实现热更新。
使用springboot提供的spring-boot-devtools
添加devtools依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
springboot maven插件配置
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
</plugin>
application.properties配置
#热部署生效
spring.devtools.restart.enabled=true
#设置重启的目录
spring.devtools.restart.additional-paths=src/main/java
#classpath目录下的resources文件夹内容修改不重启
spring.devtools.restart.exclude=src/main/resources
启动
1.maven启动方式:
在maven中使用springboot:run启动
2.运行Springboot启动类
说明:文件内容有修改,要手动触发一下idea的make,才会热更新。
class只要有变动就会重启,虽然Springboot重启很快,但感觉也不是很好。
在idea集成的tomcat中运行Springboot
pom.xml中打包类型修改为war
<packaging>war</packaging>
maven添加spring-boot-starter-tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
应用启动类修改
@SpringBootApplication
public class App extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(App.class);
}
public static void main( String[] args )
{
SpringApplication.run(App.class,args);
}
}
继承SpringBootServletInitializer,重写configure方法。
部署
跟常规的idea的web项目一样即可。如图:
后续页面、资源文件、class等修改都跟常规的idea的web项目一样操作即可。这样class只要没有增加类、方法、修改签名等就不用重启tomcat了。