一、前言

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实现热部署,改动代码自动生效相关推荐

  1. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成

    概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...

  2. Spring Boot:开发常用的热部署方式汇总

    Spring Boot:开发常用的热部署方式汇总 平时开发Sprig Boot的时候,经常改动个小小的地方就要重新启动项目,这无疑是一种很差的体验.在此,博主收集了3种热部署的方案供大家选择. 正文 ...

  3. Spring Boot(二)——项目热部署与程序发布

    一.项目热部署 1.1 配置依赖 ① pom.xml加入devtools依赖,如果scope是provided则无法实现热部署,参考. <dependency><groupId> ...

  4. Spring boot(十二):Spring boot 如何测试、打包、部署

    博文引用:springboot(十二):springboot如何测试打包部署 开发阶段 单元测试 Spring boot对单元测试的支持已经很完善了. 1 在pom包中添加Spring-boot-st ...

  5. spring boot(四):thymeleaf使用详解

    spring boot(四):thymeleaf使用详解 在上篇文章springboot(二):web综合开发中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用. ...

  6. spring boot 四:全局异常捕捉

    spring boot 四:全局异常捕捉 1 前言 希望定制错误,比如一般springboot的500错误展示如下(trace等可以通过配置application.yml来决定隐藏还是具有): app ...

  7. 《Spring Boot in Action》【8. 部署】

    8. 部署 8.1 部署到应用服务器 首先,我们构建一个war包: apply plugin: 'war'war {baseName = 'readinglist'version = '0.0.1-S ...

  8. Spring Boot项目微信云托管入门部署

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  9. JavaScript + Thymeleaf + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十八)模板脚本

    前文 JavaScript--易班优课YOOC课群在线测试自动答题解决方案(一)答案获取 Spring Boot--易班优课YOOC课群在线测试自动答题解决方案(二)答案储存 Spring Boot- ...

最新文章

  1. 为什么信不过AI看病?数据集小、可靠性差,AI医疗任重道远
  2. ElasticSearch—基本概念
  3. Spring+jpaNo transactional EntityManager available
  4. leetcode 5756. 两个数组最小的异或值之和(状态压缩dp)
  5. SpringCloud Ribbon实战(二)
  6. ios14系统 GIF图展示异常问题
  7. yconsole使用说明
  8. 安装kinnect v1驱动
  9. 台达DVP系列PLC以太网通讯方案
  10. 读书|《赤裸裸的统计学》:统计数字很容易说谎
  11. linux redis 调优,关于redis状态监控和性能调优详解
  12. 《从工业化到城市化》
  13. SunlightCoin简介——SunlightCoin 人人都是矿工
  14. “十问”彻底弄懂APS、ERP、MES的集成问题
  15. 我的世界服务器怎么做无限商店,我的世界无限商店指令 | 手游网游页游攻略大全...
  16. 请让我像亲人一样爱你
  17. 什么是“Bash”破绽?
  18. 关于720全景视频在移动端播放的兼容问题汇总,截止2017年11月29日
  19. IOS开发--icon图标设置
  20. EXCEL导入商品资料时出错怎么办

热门文章

  1. 计算机类专业要不要练打字,计算机专业学生有必要专门花时间练习打字吗?
  2. 模块开发卷宗是什么_详论单片机固件模块化架构设计(精华)
  3. python 获取文件列表_python获取文件列表
  4. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
  5. Leetcode 746. Min Cost Climbing Stairs
  6. 自定义Background
  7. 创建一个windows服务的小程序及注意事项
  8. OpenCV实现基于傅里叶变换(FFT)的旋转文本校正(文字方向检测)
  9. Facebook开源Torchnet,加速AI研究
  10. 用Apache Hadoop和Apache Solr处理和索引医学图像