Spring boot的hot swapping
前言
嘛,都是看官方文档的,就先贴上文档地址:
using-boot-hot-swapping
使用
使用hot swapping只需要把devtools的jar包添加到你的classpath里.
在gradle里添加依赖:
compile("org.springframework.boot:spring-boot-devtools")
然后如果你的classpath发生改变,你的application就会自动重启了.
restart与reload
restart
Spring Boot提供的restart技术通过两个类加载器来工作.一个加载不会变化的class通过被加载进一个基础的类加载器,另外一些经常变化的被加载进一个restart类加载器.当应用重启时,restart类加载器会被抛弃,并且一个新的restart类加载器会被创建.意味着不变的那些class不需要再被加载一次了.
reload
如果restart还是不够快,或者遇到了类加载的问题,也可以用relaod的技术Spring Loaded 或者 JRebel
排除
有一些文件发生变化时,不需要进行重启,我们可以通过设置来排除掉他们.
spring.devtools.restart.exclude=static/**,public/**
By default changing resources in
/META-INF/maven
,/META-INF/resources
,/resources
,/static
,/public
or/templates
will not trigger a restart but will trigger a live reload.
添加监控的目录
可以用spring.devtools.restart.additional-paths
来添加classpath之外的需要监控变化的目录.
禁用重启
通过pring.devtools.restart.enabled
来禁用重启的功能.
如果要禁用restart的支持,需要在启动Spring应用前设置System的Property.
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(MyApp.class, args);
}
使用一个触发文件
用spring.devtools.restart.trigger-file
来指定一个文件来触发重启.
定制restart类加载器
restart.exclude.companycommonlibs=/mycorp-common-[\\w-]+\.jar
restart.include.projectcommon=/mycorp-myproj-[\\w-]+\.jar
Spring boot的hot swapping的更多相关文章
- 【ELK】5.spring boot日志集成ELK,搭建日志系统
阅读前必看: ELK在docker下搭建步骤 spring boot集成es,CRUD操作完整版 ============================================== 本章集成 ...
- 【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作
spring boot 2.X集成ES 进行CRUD操作 完整版 内容包括: ============================================================ ...
- 【spring boot】【elasticsearch】spring boot整合elasticsearch,启动报错Caused by: java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8
spring boot整合elasticsearch, 启动报错: Caused by: java.lang.IllegalStateException: availableProcessors ], ...
- 【docker-compose】使用docker-compose部署运行spring boot+mysql 【处理容器的时区问题】【详解】【福利:使用docker-compose构建 wordpress+mysql】
==================================================================================================== ...
- 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...
- 【docker】docker部署spring boot项目在服务器上
IDE:idea 工具:docker spring boot:2.0.1 ======================================== 简单记录一下流程,以供参考: 第一步:首先得 ...
- Spring Boot 官方文档学习(一)入门及使用
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring boot官方文档学习(一)
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- 搭建spring boot+elasticsearch+activemq服务
目前时间是:2017-01-24 本文不涉及activemq的安装 需求 activemq实时传递数据至服务 elasticsearch做索引 对外开放查询接口 完成全文检索 环境 jdk:1.8 s ...
随机推荐
- java中BigDecimal在金融行业中的使用
1.引言 在java语言中,double和float用于二进制浮点型计算,无法得到精确的结果.而BigDecimal则用于精确的计算.不超过16位有效数字(最好是不超过13位)的科学和工程计算,可以使 ...
- Python进行数据分析(一)初步学习 对时区进行计数
time_zones[:10] Out[19]: [u'America/New_York', u'America/Denver', u'America/New_York', u'America/Sao ...
- SQL Server (MSSQLSERVER) 无法启动,错误代码 3417,提示Windows不能在本地计算机启动。
我的电脑为例: 1.打开sql server的安装路径:C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA 2.将 ...
- JS获取列表索引值
html部分 <ul id="test"> <li>111</li> <li>222</li> <li>33 ...
- 【BZOJ】2038: [2009国家集训队]小Z的袜子(hose)
[题意]给定n个数字ai,每次询问一个区间中随机抽选两个数字,数字相同的概率,以分数最简形式输出.n,ai<=50000. [算法]莫队算法 [题解]参考:莫队……讲稿? by Foreseea ...
- ES6 中 Array.from() 不能得到的数组元素是 undefined 或是空数组
本文地址:http://www.cnblogs.com/veinyin/p/7944072.html 正确格式 let json = { '0': 'Waaaa~', '1': 'Hello,', ...
- Metasploit 进阶
本文是"T00LS Metasploit(第二季)"的文档版,是个人在观看视频动手操作的一个记录,仅供学习.文中会介绍Metasploit的一些基本使用:主要包括远程代码执行.MI ...
- bzoj 2741 可持久化trie
首先我们设si为前i个数的xor和,那么对于询问区间[i,j]的xor和,就相当于si-1^sj,那么对于这道题的询问我们可以处理处si,然后对于询问[l,r],可以表示为在区间[l-1,r]里找两个 ...
- three.js_sence(场景)
1,THREE.Scene 的作用 (1)THREE.Scene 对象是所有不同对象的容器,也就是说该对象保存所有物体.光源.摄像机以及渲染所需的其他对象. (2)THREE.Scene 对象又是被称 ...
- phpmywind调用方法大全
头部文件调用 <?php require_once('header.php'); ?> 底部文件调用 <?php require_once('footer.php'); ?> ...