什麼是熱部署:
簡單來說,就是你修改了代碼後,不需要重新啟動項目就可以在浏覽器上直接顯示你修改後的效果。
·第一種方法(在spring-boot:run時才有效)
我在實驗的時候,在修改傳回值,添加新方法,添加新類同時添加新方法, 都可以實時傳回新值。
但是在添加一個新的controller的時候是不成功的
<plugin><!-- 熱部署插件 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin </artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
<executions> <!--後面這些不要也行,我也不知道幹什麼的-->
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
·第二種方法
在pom.xml中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<!-- optional=true,依賴不會傳遞,該項目依賴devtools;之後依賴myboot項目的項目如果想要使用devtools,需要重新引入 -->
</dependency>
在pom.xml中添加
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- "如果沒有該項配置,devtools不會起作用,即應用不會restart",有人這麼說,有人說不弄也行,我沒有試過,加上不就得了,沒必要瞎折騰 -->
<fork>true</fork>
</configuration>
</plugin>
異常處理:
如果不能使用的話,以下就是幾種常見的解決方法:
1、看對應的spring-boot-starter-parent版本是否正确。我在運作的時候就抛出App.main異常,更換依賴管理的版本後就好了。換一個更高版本的。
2、是否加入spring-boot-maven-plugin以及屬性true
3、Eclipse Project 是否開啟了Build Automatically(開啟自動編譯的功能)。
4、如果設定SpringApplication.setRegisterShutdownHook(false),則自動重新開機将不起作用。(這個我沒試過,百度上是這麼說的)
最後,這兩種方式springloader、devtools隻需要配置一種即可,建議使用devtools,可以支援更多的代碼熱部署