• IntelliJ IDEA Spring boot devtools 实现热部署


    一、spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动部署新代码。

    二、原理

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

    三、发生时机

      devtools会监听classpath下的文件变动,并会立即重启应用


    一、开启idea自动make功能 

      1、CTRL + SHIFT + A --> 查找 make project automatically --> 选中 

      

      2、CTRL + SHIFT + A --> 查找 Registry --> 找到并勾选 compiler.automake.allow.when.app.running 

      

          重启idea 重启idea 重启idea 重启idea 重启idea 重启idea 

    二、使用spring-boot-1.3开始有的热部署功能 
      1、加maven依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>

      2、开启热部署

    复制代码
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
    复制代码

    三、Chrome禁用缓存 
      F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open) 

      


     注意:  

      1、如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。

      2、这种热加载比较全面,资源文件、代码的修改都可以监听到,但有些情况下也会有问题

  • 相关阅读:
    处理火星文重温vchar,char,nvchar,nchar
    删除文件
    js常用正则表达式
    安装iis 配置iis
    无题
    js函数大全
    常用正则表达式
    QQ在线客服
    获取系统文字字体
    无限级删除的存储过程
  • 原文地址:https://www.cnblogs.com/zxguan/p/7941711.html
Copyright © 2020-2023  润新知