• 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

     

     

     

  • 相关阅读:
    Beginning Math and Physics For Game Programmers (Wendy Stahler 著)
    The Best Books on Game Dev
    Vector Math for 3D Computer Graphics (Bradley Kjell 著)
    2019年1月
    2018年12月
    Flocks,Herds and Schools: A Distributed Behavioral Model
    2018年11月
    2018年10月
    Tomcat基本
    对比Python中_,__,xx__xx
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/14251443.html
Copyright © 2020-2023  润新知