1. 程式人生 > >idea內springboot項目設置熱部署

idea內springboot項目設置熱部署

rest 另一個 重啟 tex ssp .when str tom 版本

一、需求分析:

  編寫idea中編寫項目時,經常性改某幾行代碼就需要重新啟動項目,比較浪費時間,借助idea的熱部署可以實現代碼的熱部署

二、實現經過

  這邊可以借助spring-boot-devtools模塊進行配置,devtools會檢測代碼,並進行重新發布。devtools的實現原理是通過使用兩個

  ClassLoader,一個用來加載一些第三方的代碼(如引入的一些jar包)。另一個ClassCLoud會加載一些會更改的代碼,可以稱

  為restart ClassLoader。在有代碼進行更改的時候,原來的restart ClassLoader會被清理,重新創建一個restart ClassLoader,

  由於需要加載的類較少,所以通過devtools的重啟會比idea手動啟動要快。

  

  配置:

  需要對pom.xml文件中添加如下依賴

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <optional>true</optional><!-- optional=true,依賴不會傳遞,該項目依賴devtools;之後依賴myboot項目的項目如果想要使用devtools,需要重新引入 
--> <scope>true</scope> </dependency>
   <build>
        <plugins>
            <!--springloaded 熱部署配置-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</
artifactId> <configuration> <fork>true</fork><!--fork : 如果沒有該項配置,肯呢個devtools不會起作用,即應用不會restart --> </configuration> </plugin> </plugins> </build>

  然後需要對idea進行配置才能真正實現,通過快捷鍵Ctrl+Alt+S打開設置

idea配置:

  當我們修改了Java類後,IDEA默認是不自動編譯的,而spring-boot-devtools又是監測classpath下的文件發生變化才會重啟應用,所以需

  要設置IDEA的自動編譯:

  (1)File-Settings-Compiler-Build Project automatically

    技術分享圖片

    如果是最新版本的idea則在如下的配置中

    技術分享圖片

  然後快捷鍵Ctrl+Alt+Shift+/打開設置面板選擇Registry,找到key值為compiler.automake.allow.when.app.running,然後選擇上關閉,重啟idea

  就可以了

三、其他方式

  實際上通過idea自帶的檢查更新也可以使用,且設置簡單,只需要打開springboot項目運行配置裏面,設置為檢測更新即可

  技術分享圖片

idea內springboot項目設置熱部署