idea內springboot項目設置熱部署
一、需求分析:
編寫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項目設置熱部署