IntelliJ IDEA Spring boot devtools 實現熱部署

1、spring-boot-devtools是一個爲開發者服務的一個模塊,其中最重要的功能就是自動部署新代碼。spring

2、原理緩存

  使用了兩個ClassLoader,一個ClassLoader用來加載那些不會變的類(如:第三方Jar包),另外一個ClassLoader加載會更改的類,稱爲restart ClassLoader,這樣在有代碼更改時,原來的restart ClassLoader被丟棄,從新建立一個restart ClassLoader。如此一來,因爲須要加載的類比較少,因此實現了較快的重啓。app

3、發生時機maven

  devtools會監聽classpath下的文件變更,並會當即重啓應用ide

 


 

1、開啓idea自動make功能 spring-boot

  一、CTRL + SHIFT + A --> 查找 make project automatically --> 選中 ui

  

  二、CTRL + SHIFT + A --> 查找 Registry --> 找到並勾選 compiler.automake.allow.when.app.running idea

  

      重啓idea 重啓idea 重啓idea 重啓idea 重啓idea 重啓idea spa

2、使用spring-boot-1.3開始有的熱部署功能 
  一、加maven依賴rest

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

  二、開啓熱部署

複製代碼
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>
複製代碼

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

  

 


 

 注意:  

  一、若是設置SpringApplication.setRegisterShutdownHook(false),則自動重啓將不起做用。

  二、這種熱加載比較全面,資源文件、代碼的修改均可以監聽到,但有些狀況下也會有問題

相關文章
相關標籤/搜索