SpringBoot入門——應用devtools進行熱部署

SpringBoot入門——應用devtools進行熱部署 

一、devtools簡介

        devtools是boot的一個熱部署工具,當咱們修改了類文件、屬性文件、頁面、配置文件等時,會從新啓動程序。 java

        其原理是使用了兩個ClassLoader,一個Classloader加載那些不會改變的類(第三方jar),另外一個ClassLoader加載會更改的類,成爲restart ClassLoader。web

        這樣在有代碼更改時候,原來的restart ClassLoader被丟棄,從新建立一個restart ClassLoader,因爲須要加載的類比較少,因此實現了較快的重啓時間(通常5秒內)。spring

二、使用方法

配置pom.xml添加依賴包瀏覽器

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
			<scope>true</scope>
		</dependency>
  • maven中的optional=true表示依賴不會傳遞。即此處引用的devtools不會傳遞到依賴myboot項目的項目中。
  • 僅僅加入devtools在咱們的eclipse中還不起做用,這時候還須要對以前添加的spring-boot-maven-plugin作一些修改,以下:
<build>
      <plugins>
	    <plugin>
	       <groupId>org.springframework.boot</groupId>
	       <artifactId>spring-boot-maven-plugin </artifactId>
	       <configuration>     
               <!-- 若是沒有該項配置,devtools不會起做用 -->        
		   <fork>true</fork>
	       </configuration>
	    </plugin>
      </plugins>
   </build>

三、測試

爲了方便測試,能夠在SpringBoot項目中寫個controller類springboot

package com.springboot.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
	
	@RequestMapping("/hello")
	public String hello(){
		return "hello world";
	}
}

一、啓動springbootapp

二、經過瀏覽器輸入controller地址,得到返回的字符串eclipse

顯示效果:maven

三、不關閉程序的狀況下,修改返回的字符串值,而後刷新瀏覽器spring-boot

@RequestMapping("/hello")
	public String hello(){
		return "hello friend";
	}

顯示效果:工具

在沒有關閉程序的狀況下發現字符串已經改變,測試成功

四、最後

能夠繼續修改配置文件、增添改類來驗證是否從新加載。

相關文章
相關標籤/搜索