近來在使用idea做springboot的項目,但是發現每次修改之後我都需要重新將項目關閉再開啓,這樣比較繁瑣,發現通過熱部署的方式讓我們可以一邊修改我們的項目,然後在頁面中直接通過刷新展示出來
spring爲開發者提供了一個名爲spring-boot-devtools的模塊來使Spring Boot應用支持熱部署,提高開發者的開發效率,無需手動重啓Spring Boot應用。
devtools的原理
深層原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方Jar包),另一個ClassLoader加載會更改的類,稱爲restart ClassLoader,這樣在有代碼更改的時候,原來的restart ClassLoader 被丟棄,重新創建一個restart ClassLoader,由於需要加載的類相比較少,所以實現了較快的重啓時間。
這裏我沒有把所有的方式都嘗試一遍,只是使用了devtools的方式
總的來說,一共需要兩個步驟:
第一步、先設置我們的pom.xml文件,加入依賴
首先是把下面代碼在<dependencies>中
-
<!--添加熱部署-->
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-devtools</artifactId>
-
<optional>true</optional>
-
<scope>true</scope>
-
</dependency>
另外下面的代碼是放在<build> 下面<plugins>裏的
-
<plugin>
-
<!--熱部署配置-->
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-maven-plugin</artifactId>
-
<configuration>
-
<!--fork:如果沒有該項配置,整個devtools不會起作用-->
-
<fork>true</fork>
-
</configuration>
-
</plugin>