目录
1.设置热部署的好处
Spring Boot 热部署的主要好处是在开发过程中提高了开发效率和体验。它让开发者在修改代码后无需手动重启应用程序,而是可以快速自动重新加载应用程序,减少了修改-构建-重启的时间和操作次数。这样可以实现更快的反馈循环,并降低开发成本和错误率。同时,热部署还可以减少生产环境下的系统停机时间,提高系统的可用性。
2.设置热部署的坏处
虽然 Spring Boot 热部署可以提高开发效率和体验,但也存在一些局限和潜在的风险。下面是一些可能的坏处:
-
热部署会引入一些性能和内存消耗的开销,因为应用程序需要不断地重新加载和初始化。
-
在一些场景下热部署可能会造成代码状态的混乱,例如类加载器问题、资源共享问题等等。
-
热部署依赖于特定的 IDE、插件和配置,如果不正确使用可能会导致不良影响,比卡、失败、莫名奇妙的 bug 等等。
-
各种操作系统或开发环境版本的差异,以及多线程或其他并发处理方式,都可能对热部署的效果产生一定的影响和限制。
因此,在选择是否采用 Spring Boot 热部署时,需要平衡好实际需求和可行性,避免漫无目的地跟风或滥用。
3.设置热部署的流程
实现Spring Boot热部署通常需要以下步骤:
1.添加Spring Boot DevTools依赖:在pom.xml文件里添加如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
2.启用自动重载:在 application.properties 或 .yml 文件里添加以下配置
spring.devtools.restart.enabled=true
3.(可选)排除资源文件和静态文件的热部署:在 application.properties 或 .yml 文件里添加以下配置
spring.devtools.restart.exclude=static/**,public/**
4.2020版本以下的,按住ctrl+shift+alt+/ 找到Registry点击
2020以上的,在File->setting->advanced Settings可进行设置
这样,一个简单的热部署就开启了
4.关闭热部署功能
1.修改application.properties
将上面的enabled设置为false即可
2.热部署的禁用是有优先级的,所以先看看优先级是如何划分:
可以看到第一种方法是在优先级3上设置的,如果我们想换成优先级6的,就可以这样:
@SpringBootApplication
public class Springboot12HotDisplayApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(Springboot12HotDisplayApplication.class, args);
}
}