一、简单介绍

  spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是修改代码后自动启动springboot服务,速度比手动停止后再启动要快,节省出来的并不是手工操作的时间。

二、原理

  主要是使用了两个ClassLoader,一个Classloader加载不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为  restart ClassLoader,这样在有代码更改的时候,原来的restartClassLoader 被丢弃,重新创建一个restartClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。

三、配置使用

1.添加maven配置

2.添加启动插件

pom文件添加插件启动配置,如果没有fork配置,devtools不起作用,即项目修改后不会重新启动

3.设置项目自动编译

在setting->Build,Execution,Deployment->Compiler找到 Build Project Automatically。 
这个选项再Eclipse是默认勾选的,而IDEA要手动勾选。

4.选择登记

然后找个地方ctrl+shift+alt+/ 调出Maintenance(维护)控制台,选择Registry(登记)

勾选运行时自动编译(compiler.automak.allow.when.app.running)

5.验证

当修改完毕代码保存后,使用的加载器就变为了 restartedMain 了,说明热部署已经成功。

四、其他

  devtools可以实现页面热部署(即页面修改后会立即生效)

这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现

spring-boot-devtools 热部署的更多相关文章

  1. spring boot devtools热部署

    问题1: Springloaded 在springboot2的maven的pom.xml 无法找到 解决方法:在idea通过View->Tool Windows->Maven Projec ...

  2. Spring boot之热部署

    springboot热部署 1.springloaded(热部署) 2.devtools(热部署) 一.springloaded 问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了, ...

  3. Spring Boot (3) 热部署devtools

    热部署:当发现程序修改时自动启动应用程序. spring boot为开发者提供了一个名为spring-boot-devtools的模块来使sring boot应用支持热部署,提高开发者的开发效率,无需 ...

  4. spring boot 之热部署(三)

    热部署:当发现程序修改时自动启动应用程序. spring boot使用的是spring-boot-devtools是一个为开发者服务的一个模块.其原理用了classLoader 其中一个加载不变的类, ...

  5. Spring Boot实现热部署

    在Spring Boot实现代码热部署是一件很简单的事情,代码的修改可以自动部署并重新热启动项目. 引用devtools依赖 <dependency> <groupId>org ...

  6. spring boot 之热部署

    热部署:当发现程序修改时自动启动应用程序. spring boot使用的是spring-boot-devtools是一个为开发者服务的一个模块.其原理用了classLoader 其中一个加载不变的类, ...

  7. Spring boot的热部署

    当把配置文件,比如yml也打到jar包后,如何修改配置,而又不用重新发布呢? 在jar包同一目录下,放置Application.yml (注意,不管jar包内是否此文件名)修改配置文件后,重新启动ja ...

  8. IDEA下配置Spring Boot的热部署

    © 版权声明:本文为博主原创文章,转载请注明出处 devtools简介 spring-boot-devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),因为其采用的 ...

  9. spring boot 调试 - 热部署

    maven gradle Maven: 命令行方式: mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport= ...

  10. 1. Spring boot 之热部署

    1. spring boot 热部署 1.1. springloaded springloaded可以实现修改类文件的热部署.下载地址:springloaded 安装单击Run Configurati ...

随机推荐

  1. zoj 5823 Soldier Game 2018 青岛 I

    题目传送门 题意:现在有n个人,现在可以把这n个人分成若干组,只有连续的人才能被分为一组,并且一个组内最多2个人,现在问你 所有组内的最大值-最小值 这个差值最小是多少. 题解: 将每个人的情况3种情 ...

  2. go Server示例

    示例1: package main import ( "fmt" "log" "net/http" "time" ) f ...

  3. selenium爬虫

    Web自动化测试工具,可运行在浏览器,根据指令操作浏览器,只是工具,必须与第三方浏览器结合使用,相比于之前学的爬虫只是慢了一点而已.而且这种方法爬取的东西不用在意时候ajax动态加载等反爬机制.因此找 ...

  4. Python起源发展与学(ru)习(keng)的开篇

    写在前面,python天下第一!!!!!我要做python的舔狗

  5. PHP. 02®. Ajax异步处理、常见的响应状态、XMLHttpRequest对象及API、ajax的get/post方法、

    异步对象 a)创建异步对象 b)设置请求的url等参数 c)  发送请求 d)注册时间 e)在注册的事件中获取返回的内容并修改页面显示的内容 布尔类型不能直接用echo输出 常见的响应状态 Ajax概 ...

  6. if __name__ = "main" 解释

  7. 致初学者(一): HDU 2000~ 2013题解

    对于开始学习C语言程序设计或C++程序设计面向过程部分的同学来说,利用在线OJ网站进行实践训练,对提高自己的编程能力很有好处.国内外OJ网站很多,每个都去看看,去刷个题,是不现实的,也没必要.即使一个 ...

  8. 【学习笔记】第八章 python3核心技术与实践--条件与循环

    [第七章]思考题答案,仅供参考:

  9. StringBuilder和StringBuffer的区别

    Java中StringBuilder和StringBuffer的区别分析 StringBUilder是线程不安全的(线程同步访问的时候会出问题),但是效率相对较高. (String类型使用加号进行拼接 ...

  10. IO流——递归(输出所有文件)

    package pers.zbb.File; import java.io.File; public class FileDemo { public static void main(String[] ...