Spring Boot(四):利用devtools实现热部署,改动代码自动生效
一、前言
spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restartClassLoader 被丢弃,重新创建一个restartClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。
二、使用方法
在项目的pom.xml文件添加如下两段
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId><version>1.5.7.RELEASE</version><optional>true</optional> </dependency>
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork><addResources>true</addResources> </configuration> </plugin>
此时重新启动项目即可实现热部署,改动任意代码会立即生效。
Spring Boot(四):利用devtools实现热部署,改动代码自动生效相关推荐
- Spring Boot项目利用MyBatis Generator进行数据层代码自动生成
概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...
- Spring Boot:开发常用的热部署方式汇总
Spring Boot:开发常用的热部署方式汇总 平时开发Sprig Boot的时候,经常改动个小小的地方就要重新启动项目,这无疑是一种很差的体验.在此,博主收集了3种热部署的方案供大家选择. 正文 ...
- Spring Boot(二)——项目热部署与程序发布
一.项目热部署 1.1 配置依赖 ① pom.xml加入devtools依赖,如果scope是provided则无法实现热部署,参考. <dependency><groupId> ...
- Spring boot(十二):Spring boot 如何测试、打包、部署
博文引用:springboot(十二):springboot如何测试打包部署 开发阶段 单元测试 Spring boot对单元测试的支持已经很完善了. 1 在pom包中添加Spring-boot-st ...
- spring boot(四):thymeleaf使用详解
spring boot(四):thymeleaf使用详解 在上篇文章springboot(二):web综合开发中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用. ...
- spring boot 四:全局异常捕捉
spring boot 四:全局异常捕捉 1 前言 希望定制错误,比如一般springboot的500错误展示如下(trace等可以通过配置application.yml来决定隐藏还是具有): app ...
- 《Spring Boot in Action》【8. 部署】
8. 部署 8.1 部署到应用服务器 首先,我们构建一个war包: apply plugin: 'war'war {baseName = 'readinglist'version = '0.0.1-S ...
- Spring Boot项目微信云托管入门部署
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- JavaScript + Thymeleaf + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十八)模板脚本
前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...
最新文章
- 为什么信不过AI看病?数据集小、可靠性差,AI医疗任重道远
- ElasticSearch—基本概念
- Spring+jpaNo transactional EntityManager available
- leetcode 5756. 两个数组最小的异或值之和(状态压缩dp)
- SpringCloud Ribbon实战(二)
- ios14系统 GIF图展示异常问题
- yconsole使用说明
- 安装kinnect v1驱动
- 台达DVP系列PLC以太网通讯方案
- 读书|《赤裸裸的统计学》:统计数字很容易说谎
- linux redis 调优,关于redis状态监控和性能调优详解
- 《从工业化到城市化》
- SunlightCoin简介——SunlightCoin 人人都是矿工
- “十问”彻底弄懂APS、ERP、MES的集成问题
- 我的世界服务器怎么做无限商店,我的世界无限商店指令 | 手游网游页游攻略大全...
- 请让我像亲人一样爱你
- 什么是“Bash”破绽?
- 关于720全景视频在移动端播放的兼容问题汇总,截止2017年11月29日
- IOS开发--icon图标设置
- EXCEL导入商品资料时出错怎么办
热门文章
- 计算机类专业要不要练打字,计算机专业学生有必要专门花时间练习打字吗?
- 模块开发卷宗是什么_详论单片机固件模块化架构设计(精华)
- python 获取文件列表_python获取文件列表
- Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
- Leetcode 746. Min Cost Climbing Stairs
- 自定义Background
- 创建一个windows服务的小程序及注意事项
- OpenCV实现基于傅里叶变换(FFT)的旋转文本校正(文字方向检测)
- Facebook开源Torchnet,加速AI研究
- 用Apache Hadoop和Apache Solr处理和索引医学图像