SpringBoot的热部署(五)

SpringBoot应用的热部署:

  除了使用JRebel来实现热部署,还可以使用Springboot提供的spring-boot-devtools包来完成SpringBoot应用热部署;

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-devtools</artifactId>

  <optional>true</optional>

</dependency>

 IDEA按CTRL+F9编译后就会进行热部署

1)原理:

SpringBoot重启是reload重启,通过监控classpath的变化,如果classpath中的文件发生变化,即触发重启。SpringBoot通过两个classpath来完成reload,一个basic classloader中加载不变的类,一个restart classloader中加载classpath中的类,重启的时候,restart classloader中的类丢弃并重新加载;

2)排除资源:

spring.devtools.restart.exclude=static/**,templates/** (在静态资源中也要按CTRL+F9编译后才能进行热部署,虽然不会重启

spring.devtools.restart.additional-exclude=public/** (处理默认配置排除之外的)

spring.devtools.restart.enabled=false  (禁用自动重启)

3)可以使用triggerfile的重启策略:

spring.devtools.restart.triggerFile=trigger.file

注意这个文件不要放到default_excludes目录下面

猜你喜欢

转载自blog.csdn.net/qq_37431224/article/details/103871022