SpringBoot热部署-04

热部署

spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启SpringBoot应用。

devtools的原理

深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

第一种热部署使用方式

添加坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
application配置文件中添加
#热部署生效
spring.devtools.restart.enabled=true
#设置重启的目录
#spring.devtools.restart.additional-paths=src/main/java
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude=WEB-INF/**
将自动编译开启

在这里插入图片描述

ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running

在这里插入图片描述

注:

完成上述操作,springboot热部署完成,不用再次手动保存,它会自动给你保存,保存后,自动重启项目,这种热部署,可能会导致你在登录成功后,在期间修改了代码,自动重启后,可能会导致session变了。这只是一种方式的热部署,可能只是修改了一点,并不想要重启,推荐使用第二种。

第二种热部署使用方法:

修改自动编译

在这里插入图片描述

修改完代码后手动保存

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44102521/article/details/89283110