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";
	}

显示效果:工具

在没有关闭程序的状况下发现字符串已经改变,测试成功

四、最后

能够继续修改配置文件、增添改类来验证是否从新加载。

相关文章
相关标签/搜索