spring-boot-devtools 插件实现 Springboot 热部署

一、为什么需要热部署

Springboot 项目如果代码或者配置文件进行了修改,需要重新将项目关闭再重新启动,这样比较繁琐,并且如果项目比较大,重启的时间会比较长,那么怎么解决上述问题呢?通过热部署的方式让我们可以一边修改我们的项目,然后在页面中直接通过刷新展示出来.
spring 为开发者提供了一个名为 spring-boot-devtools 的模块来使 Springboot 应用支持热部署,提高开发者的开发效率,无需手动重启 Springboot 应用.

 

二、devtools 的原理

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

 

三、实现热部署步骤

1、pom.xml 中加入 spring-boot-devtools 依赖

// 添加 spring-boot-devtools 依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
   <scope>runtime</scope>
    <optional>true</optional>
</dependency>

2、添加插件

// 复制插件到 pom.xml 中,如果是父子工程添加到父工程中
<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <fork>true</fork>
        <addResources>true</addResources>
      </configuration>
    </plugin>
  </plugins>
</build>

3、设置 IDEA 自动编译: File---->Settings-Compiler---->勾选如下配置

4、快捷键 ctrl + shift + alt + /---->弹出对话框---->选择点击 Registry---->勾上 Compiler autoMake allow when app running

5、重启 IDEA

 

 

 

原文地址:https://www.cnblogs.com/xiaomaomao/p/14251443.html