• 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、这种热加载比较全面,资源文件、代码的修改都可以监听到,但有些情况下也会有问题

  • 相关阅读:
    脱发
    jquery radio 选择值
    今天看了非诚勿扰记忆哥,觉得人和人还是差的是能力
    如果要在数组中删除东西还是用倒序的数是正确的
    jquery操作 xml
    偶然在一个帖子上看到的
    jquery 队列的应用
    阅读
    Request的getParameter和getAttribute方法的区别
    jsp与jspx文件
  • 原文地址:https://www.cnblogs.com/GotoJava/p/13531531.html
Copyright © 2020-2023  润新知