© 版权声明:本文为博主原创文章,转载请注明出处

devtools简介

spring-boot-devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),因为其采用的虚拟机机制,该项重启时很快的

spring-boot-devtools主要有两个类加载器:

  base classloader(Base类加载器),加载不改变的class,例如:第三方提供的jar包等

  restart classloader (Restart类加载器),加载正在开发的class

因为重启的时候只加载了正在开发的class,没有重新加载第三方的jar包,所以重启会很快

IDEA下配置热部署

1. File -->> Settings -->> Build,Execution,Deployment -->> Granle-Android Compiler --> 勾选 Make project automatically(only works while not running / debugging)

2. Ctrl + Shift + A,输入Registry,选中第一个回车,勾选 compiler.automake.allow.when app.running

3. pom.xml中引入devtools的依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true,依赖不会传递,该项目依赖devtools;其他依赖本项目的项目需重新引入devtools-->
<optional>true</optional>
</dependency>

4. pom.xml中添加spring-boot-maven-plugin插件,并且配置<fork>true</fork>(非必须)

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 自己测试,不配置也可实现热部署 -->
<fork>true</fork>
</configuration>
</plugin>

5. 配置application.yml文件(或application.properties)

spring:
thymeleaf:
cache: true # false:关闭缓存,即时刷新
devtools:
restart:
enabled: true # 启用热部署
additional-paths: src/main/java # 设置需重启的目录,目录下的文件改变时会restart

6. Chrome可在开发者模式下(快捷键F12:需打开开发者模式才可使用该快捷键),禁用缓存(非必须)

7. 重启项目,进行测试即可

参考:

  https://www.imooc.com/video/16717

  https://www.cnblogs.com/winner-0715/p/6666579.html

IDEA下配置Spring Boot的热部署的更多相关文章

  1. Spring boot的热部署

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

  2. Spring boot之热部署

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

  3. spring boot 调试 - 热部署

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

  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 (3) 热部署devtools

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

  8. 1. Spring boot 之热部署

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

  9. spring boot开启热部署

    步骤一:添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

随机推荐

  1. 使用百度地图JavaScript实现驾车/公交/步行导航功能

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. ELK集群

    kafka集群-------------------1. 下载wget http://mirror.rise.ph/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0. ...

  3. 四. Java继承和多态6. 多态对象的类型转换

    这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常. ...

  4. iPhone 通过UIRequiredDeviceCapabilities指定程序适用于哪些设备

    以前在itunes中查看某个应用时,会有说明信息,表明程序适用于ios 1.0,2.0,3.0什么的. 上周末将Key Manager上传到app store时,一直有个疑问,就是没有发现填写程序适用 ...

  5. 彻底理解Javascript 中的 Promise(-------------------------------***---------------------------------)

    ES6原生提供了 Promise 对象. 到底是何方妖怪呢?打出来看看: 所谓 Promise,就是一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个 ...

  6. zookeeper 学习笔记3

    ZooKeeper 允许客户端向服务端注册一个 Watcher 监听, ZooKeeper 允许客户端向服务端注册一个 Watcher 监听, ZooKeeper 允许客户端向服务端注册一个 Watc ...

  7. mysql truncate drop delete的区别

    以下讨论,针对于mysql数据库. 为什么会想到这个问题呢? 因为项目中需要清除数据库的数据,而且需要实现自增的主键从0开始计数.所以想到总结一个几个常用的删除语法的差异. 可以做一个测试 建一个带有 ...

  8. poj 2324 Anniversary party(树形DP)

    /*poj 2324 Anniversary party(树形DP) ---用dp[i][1]表示以i为根的子树节点i要去的最大欢乐值,用dp[i][0]表示以i为根节点的子树i不去时的最大欢乐值, ...

  9. CMAKE 编译报错

    报错如下: CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. 没有安装 gcc 和 ...

  10. yarn 查看任务信息

    一.在命令行使用命令查看 (1)查看日志:yarn logs -applicationId application_1469094096026_26612 (2)查看状态:yarn applicait ...