遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

SpringBoot的devtools与热部署实现

简介

spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去,即在我们改变了一些代码或者配置文件的时候,应用可以自动重启,这在我们开发的时候,非常有用。

使用spring-boot-devtools的应用程序在类路径更改时自动重新启动,即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机,idea自动保存)

Spring Boot提供的重启技术使用两个类加载器(ClassLoader):

一个Classloader加载那些不会改变的类(例如:来自第三方jar的类),

另一个ClassLoader加载会更改的类,称为restart ClassLoader(重启类加载器),也就是说,正在积极开发的类被加载到重启类加载器中。这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间,比“冷启动”快得多。

 

加maven依赖

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

 

配置

1、File --> Settings,勾选Build project automatically

 

2、CTRL + SHIFT + A --> 查找Registry --> 找到并勾选compiler.automake.allow.when.app.running

最后重启idea。

 

禁用重启

如果你不想使用重新启动功能,则可以使用该spring.devtools.restart.enabled属性将其禁用 。

public static void main(String[] args) {
    System.setProperty("spring.devtools.restart.enabled", "false");
    SpringApplication.run(MyApp.class, args);
}

 

【bak】

 

posted @ 2018-11-25 10:16  全栈测试笔记  阅读(495)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end