SpringBoot项目在IntelliJ IDEA中实现热部署 1
spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。
原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader
,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)
一、开启idea自动make功能
1、CTRL + SHIFT + A --> 查找make project automatically --> 选中
2、CTRL + SHIFT + A --> 查找Registry --> 找到并勾选compiler.automake.allow.when.app.running
最后重启idea
二、使用spring-boot-1.3开始有的热部署功能
1、加maven依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency>
2、开启热部署
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration> <fork>true</fork>//该配置必须</configuration></plugin></plugins> </build>
三、Chrome禁用缓存
F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open)
至此,在idea中就可以愉快的修改代码了,修改后可以及时看到效果,无须手动重启和清除浏览器缓存。
测试方法:
1.修改类-->保存:应用会重启
2.修改配置文件-->保存:应用会重启
3.修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)
不能使用分析:
1.对应的spring-boot版本是否正确,我这里使用的是1.5.3.RELEASE版本;
2.是否加入plugin了,以及属性<fork>true</fork>
3.Intellij IDEA是否开启了Make Project Automatically。
4.如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。
参考:
http://412887952-qq-com.iteye.com/blog/2300313
SpringBoot项目在IntelliJ IDEA中实现热部署 1相关推荐
- SpringBoot项目在IntelliJ IDEA中实现热部署
spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去. 原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更 ...
- IDEA中设置热部署
自从 IntelliJ IDEA 出道以来,就得到很多人青睐,现在越来越多的人从Eclipse中走入IntelliJ IDEA,我也是其中一个,当然刚开始会有很多不适应,不止因为快捷键,还有它的配置, ...
- Springboot项目如何设计接口中敏感字段模糊查询?
目录 前言 场景分析 实现方案 环境配置 依赖配置 代码实现 总结 前言 在<Springboot项目如何设计接口中敏感字段的加密.解密>和<Springboot项目如何设计接口中敏 ...
- 记录springBoot项目使用jar包中的mapper报错问题
记录springBoot项目使用jar包中的mapper报错问题 背景 双数据源的实现 启动时报找不到对应的service 启动报mapper找不到 启动报no sqlsessionfactory 启 ...
- 热部署在java中的包名_09-springboot工程中的热部署实现。
热部署简介 Spring Boot 开发者为Spring Boot项目中提供了一个热部署(spring-boot-devtools)模块,支持项目的热部署(修改了某些资源以后无需重启服务),以提高开发 ...
- idea中reload all from disk_SpringBoot IDEA中实现热部署
在前后端分离的时代中,或许我们基本上很少会用到传统的MVC模式,但是对于部分老项目或者一些小项目来说,传统的MVC方式依然有着它短平快的优点.那么对于开发中,我们常遇到的一个困扰就是,如何像传统Spr ...
- 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用
不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用 我们知道,部署 Web 应用可以直接将 Web 应用的文件夹置于 Tomca ...
- Intellij IDEA+Tomcat+JRebel热部署
Intellij IDEA+Tomcat+JRebel热部署 一.安装JRebel插件 1. 在线安装 打开设置 File ->setting或者直接点设置的图标进入 在线下载并安装 2. 破解 ...
- spring mvc项目在IDEA下使用jrebel热部署报错!!
转载:https://segmentfault.com/q/1010000006068898 spring mvc项目在IDEA下使用jrebel热部署报错!! 25-Jul-2016 20:43:4 ...
最新文章
- html流动模型,javascript的事件流模型都有什么?
- ASP .NET 如何在 SQL 查询层面实现分页
- python开发板比较_再不学点Python,咱真老了--Adafruit Metro M0 Express开发板评测
- Oracle中的Union、Union All、Intersect、Minus
- mysql自带命令使用教程_自用mysql自带命令实现数据库备份还原
- Win10_MySQL环境搭建以及Navicat的使用全解
- php 模块 远程,ThinkPHP远程调用模块的操作方法 URL 参数格式
- linux内存管理(二)-内存数据结构分析
- 卷积神经网络在tenserflow的实现
- 【反向并查集、联通图】P1197 [JSOI2008]星球大战
- 2009年具有中国特色的脑筋急转弯
- RubyOnRails 在linux平台安装的过程
- yasm linux gcc,vs+msys2+yasm 编译libx264+ffmpeg详细解释(32位或64位)
- 基于SpringBoot的QQ邮箱登录注册
- VmodCAM图像采集 VGA显示
- 2022云计算真题:日志分析服务
- SDUTOJ 2178 - 链表的有序集合
- 11广义表的基本概念和性质
- 深度学习目标检测方法综述
- mysql y m d h i_php时间问题?mysql数据库的时间格式(Y-M-D H:I:S) 在PHP页面想这样显示(Y-M-D) (apos;.#36;rows[apos;ndate...