zoukankan      html  css  js  c++  java
  • 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

     

     

     

  • 相关阅读:
    Linux下vi和vim模式相互切换
    Linux文件系统目录
    华硕笔记本(UEFI)支持U盘启动
    什么是RSS feed?订阅RSS有什么好处?
    JSTL的时间格式化标签的使用
    token session区别 以及JWT无状态token
    c++ 重载成员函数的地址如何获取
    c++ __VA_ARGS__
    协程任务调度器
    yield return 1
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/14251443.html
Copyright © 2011-2022 走看看