文档章节

SpringBoot入门——应用devtools进行热部署

DLQ丁
 DLQ丁
发布于 2017/07/26 00:36
字数 442
阅读 48
收藏 2

SpringBoot入门——应用devtools进行热部署 

1、devtools简介

        devtools是boot的一个热部署工具,当我们修改了类文件、属性文件、页面、配置文件等时,会重新启动程序。

        其原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方jar),另一个ClassLoader加载会更改的类,成为restart ClassLoader。

        这样在有代码更改时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类比较少,所以实现了较快的重启时间(一般5秒内)。

2、使用方法

配置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>

3、测试

为了方便测试,可以在SpringBoot项目中写个controller类

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

1、启动springboot

2、通过浏览器输入controller地址,获得返回的字符串

显示效果:

3、不关闭程序的情况下,修改返回的字符串值,然后刷新浏览器

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

显示效果:

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

4、最后

可以继续修改配置文件、增添改类来验证是否重新加载。

© 著作权归作者所有

共有 人打赏支持
DLQ丁
粉丝 31
博文 14
码字总数 14639
作品 0
丰台
程序员
私信 提问
SpringBoot学习之路:12.Spring Boot使用idea开发如何配置热加载

java开发的ide用最多的无非就是eclipse和idea,在eclipse中开发springboot,要使项目热加载资源只需要在pom文件中引入springboot的开发工devtools即可。但是该工具在使用idea开发springboot时...

MaxBill
08/15
0
0
Spring Boot学习资源

Spring Boot 入门 http://blog.csdn.net/isea533/article/details/50278205 ---------------------------------------------------------- Spring Boot 静态资源处理 http://blog.csdn.net/c......

IamOkay
2017/02/17
0
0
SpringBoot(二)——热部署(springloader)

SpringBoot(二)——热部署(springloader) 一、问题的提出:   在编写代码的时候,有时只是简单把打印信息改变了,就需要重新部署SpringBoot项目,如果是这样的编码方式,那么我们估计一天...

Qiu_CJ
07/18
0
0
补习系列-springboot项目基础搭建课

目录 前言 一、基础结构 二、添加代码 三、应用配置 四、日志配置 五、打包部署 小结 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推...

美码师
07/07
0
0
SpringBoot热部署实现(devtools)

前言:使用java开发时,由于经常修改文件,所以在测试的时候因为修改了文件所以要经常重启项目,以便查看效果。这样对开发效率来说很不方便。spring为开发者提供了一个名为spring-boot-devto...

zq木偶人
07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

最重要的是做什么,而不是怎么做。

最重要的是做什么,而不是怎么做。 做什么是战略,怎么做是战术。将军下令说,天黑前拿下这座山头,这是战略。手下的士兵可以不知道为什么要拿下这座山头,还非得是天黑之前,但士兵必须知道...

我是菜鸟我骄傲
今天
1
0
w, vmstat, top, sar, nload命令查看系统状态信息

w/uptime 查看系统负载 cat /proc/cpuinfo 查看cpu核数 vmstat 监控系统状态,用法 vmstat 1,关键的几列: r, b, swpd, si, so, bi, bo, us, wa top 查看进程使用资源情况 top -c 显示详细的...

野雪球
今天
2
0
小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
今天
3
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
2
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部