【夏目鬼鬼分享】SpringBoot集成热部署(IDEA)
原理
深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
若想探究底层实现或者自定义加载类
具体步骤
一、pom文件中加入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>
</dependency>
在spring-boot-maven-plugin中增加configuration
<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- 增加fork 才允许热部署 ,fork交叉 --><fork>true</fork></configuration></plugin>
</plugins>
二、IDEA种开启自动编译
打开顶部工具栏 File -> Settings -> Build,Execution,Deployment -> Compiler 然后勾选 Build project automatically 。
三、Shift+Ctrl+a 打开工具窗口输入Registry点击后,勾上 Compiler autoMake allow when app running
四、以DEBUG模式启动
【夏目鬼鬼分享】SpringBoot集成热部署(IDEA)相关推荐
- SpringBoot实现热部署
SpringBoot实现热部署主要依赖的是DevTools工具,IDEA可以在新建SpringBoot项目时勾选DevTools选项: 或者手动在pom.xml中添加DevTools依赖的相关jar: ...
- SpringBoot项目热部署配置
SpringBoot配置热部署后修改代码, 无需重启即可看到修改效果. pom引入spring-boot-devtools依赖 <!--SpringBoot热部署配置 --> <de ...
- SpringBoot 配置热部署
SpringBoot 配置热部署 先来说一说热部署具体有什么样的神奇作用? 再我们平常编写一个web项目时,都知道如果修改html或者jsp这些前端页面,我们浏览器刷新,是可以实时更新的.但是如果修改 ...
- SpringBoot 实现热部署
#SpringBoot实现热部署 ##1.添加依赖 <!-- 热部署 --> <dependency><groupId>org.springframework.bo ...
- springboot项目热部署
原理 非springboot项目热部署实现原理:服务器去监控其中加载的应用,发现产生了变化就重新加载一次. springboot项目热部署实现原理:基于springboot开发的web工程其实有一个显 ...
- 关于在IDEA上开发springboot及其热部署等等问题
耗费了我两天一夜的时间,一把辛酸泪,所以要记录一下 1:IDEA方面 这个IDEA,真的是又爱又恨,喜欢他的操作模式,界面等等一系列,但是麻烦的是很多都跟eclipse不同,大大的不适应,刚开始肯定极 ...
- SpringBoot官方热部署和远程调试神器,真带劲!
平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...
- Intellij IDEA SpringBoot项目热部署解决方案
第一步:在项目pom文件中导入依赖 <dependency><!--Spring 官方提供的热部署插件 --><groupId>org.springframewor ...
- SpringBoot 实现热部署有哪几种方式
主要有两种方式: Spring Loaded Spring-boot-devtools 引用devtools依赖 org.springframework.boot spring-boot-devtoo ...
最新文章
- 探React Hooks
- java 取绝对值_Java实现一致性哈希算法,并搭建环境测试其负载均衡特性
- 【Android WebSocket】Android 端 WebSocket 基本用法 ( 添加依赖和权限 | 创建 WebSocketClient 客户端类 | 建立连接并发送消息 )
- 在oracle备份数据库,Oracle在A机器上备份了数据库,到B机器上恢复时,怎么进行下去?...
- MAT之ELM:ELM基于近红外光谱的汽油测试集辛烷值含量预测结果对比
- python定义词典_python – 自定义类是一个字典,但初始化没有字典副本?
- 云效 Flow——Java构建并通过云效上传二方库到 Maven 私有仓库
- ITK:计算矢量图像中每个像素的大小以生成大小图像
- html5手机端三级联动城市选择代码,省市县三级联动(jQuery手机端收货地址选择地区代码)...
- disruptor消费者模型
- 大数据学习笔记06:伪分布式Hadoop
- 华为Mate 40工程机曝光:并未采用屏下摄像头
- 电子商务网站优化之策略篇
- Mysql 的ERROR 1005 (HY000): Can't create table 'xxx' (errno: 150)
- Java并发包实际应用_Java并发包之核心AQS
- Fortran——安装软件
- 微软服务器系统补丁kb2919355,关于补丁KB2919355
- macOS搭建51单片机开发环境
- C语言——通讯录的实现
- 甲骨文裁员犯的病,任正非早在10年前就开出了药方
热门文章
- python项目策划书_Python实战计划学习第一周
- asp.net2.0学习指导 菜鸟到中级程序员的飞跃
- python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?
- python数据分析师下载_2020云开见明Python数据分析师特训营,全套课程资源下载...
- 如何在工作中提升自己的学习能力
- Navicat导出ncx文件并解密连接密码
- oracle 雪峰,讨论 - 廖雪峰的官方网站
- PYQT 按钮样式设置
- 机器学习-各种距离的定义
- wps怎么删除分隔符号 分栏