1. 程式人生 > >SpringBoot 熱部署 + IDEA

SpringBoot 熱部署 + IDEA

1、使用Spring-Boot-Devtools實現熱載入(這種方式會自動重啟)

devtools的原理:

                       深層原理是使用了兩個ClassLoader,一個Classloader載入那些不會改變的類(第三方Jar包),另一個ClassLoader載入會更改的類,稱為restart ClassLoader,這樣在有程式碼更改的時候,原來的restart ClassLoader 被丟棄,重新建立   一個restart ClassLoader,由於需要載入的類相比較少,所以實現了較快的重啟時間(並不是不需要重啟,而是重啟的時間很快,到了可以忽略的地步)。

實現:

1、加入依賴

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


2、設定IDEA

主要有兩個地方的設定

   1)  “File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,選中打勾 “Build project automatically”

image

   2) 組合鍵:“Shift+Ctrl+Alt+/” ,選擇 “Registry” ,選中打勾 “compiler.automake.allow.when.app.running”    (這個是按照字母來排序的)

imageimage

OK,設定完成,直接啟動即可



2、spring-loaded實現熱載入(這種方式依賴本地jia包,但是中間修改之後沒有重啟的過程)

       1、下載本地springloaded  的jar包   至於版本在我做的時候選擇jdk1.8  +

1.2.6.RELEASE  出現了問題,似乎是由於1.8 Lambda表示式引起的問題,具體沒有深究,我換成了1.2.8.RELEASE   所以本例使用的是1.2.8

   下載地址附上http://central.maven.org/maven2/org/springframework/springloaded/1.2.8.RELEASE/springloaded-1.2.8.RELEASE.jar

      如果這個連結失效了,那就直接去maven倉庫中找然後下載下來,放於本地磁碟

      2、啟動設定

            在我們設定啟動的時候新增一個引數即可


image


重點D:\Maven\springloaded-1.2.8.RELEASE.jar這個就是我們jar包所在的位置

  OK,完結,現在直接啟動即可

image


示例:

imageimage

imageimage


在這期間沒有重啟專案哦~~~