首页 > 其他分享 >Spring boot 配置热部署(两步即可)

Spring boot 配置热部署(两步即可)

时间:2023-01-16 18:05:36浏览次数:57  
标签:Spring classloader 两步 boot Boot restart 加载


代码配置(步骤一)

maven

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>

yml

# Spring
spring:
devtools:
restart:
# 默认为true
enabled: true

IDEA配置(步骤二)

1. 开启​​Build project automatically​​。步骤如下图:“文件”——“设置”——“构建,执行,部署”——“编译器”——勾选“Build project automatically”。


Spring boot 配置热部署(两步即可)_devtools


 2. 使用快捷键:Ctrl + Alt + Shift + / 调出 Registry 窗口,勾选 compiler.automake.allow.when.app.running 选项。如下图:


Spring boot 配置热部署(两步即可)_intellij-idea_02


Spring boot 配置热部署(两步即可)_intellij-idea_03

热部署

监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前。

DevTools

DevTools是Spring为开发者提供了一个名为spring-boot-devtools的模块,来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。使用起来非常简单,只需要将下面的依赖引入项目里面就可以了。

重新启动 vs 重新加载

Spring Boot提供的重启技术通过使用两个类加载器来工作。
不改变的类(例如来自第三方jar的类)被加载到base classloader中。
我们正在开发的类会加载到restart classloader中。当应用程序重新启动时,restart classloader将被丢弃并创建一个新类。这种方法意味着应用程序重启通常比"cold starts"快得多,因为基类加载器已经可用并且已经被填充。


标签:Spring,classloader,两步,boot,Boot,restart,加载
From: https://blog.51cto.com/u_15942590/6010662

相关文章