文档章节

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丁
粉丝 30
博文 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
Idea配置spring-boot-devtools- 不起作用

我在用idea14在做springboot框架项目(maven),添加了spring-boot-devtools,但是热部署仍然不好用,不知道哪里不对。 这些是我目前的配置: maven依赖使用了spring---parent 版本1.4.1.REL...

fgod
2016/11/03
3.1K
3
补习系列-springboot项目基础搭建课

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

美码师
07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
3
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
6
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
6
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部