idea的热加载与热部署
2024-10-09 11:34:44
一:热加载与热部署
热部署的意思就是不用手动重启环境,修改类后,项目会自动重启。但是如果项目比较大,重启也需要耗时十几秒左右。
热加载意为不需要重新启动,修改了什么文件就重新加载什么文件,可以做到1,2秒左右就能看到效果。所以更节省时间。
但是二者是互有利弊。热部署的好处是,重新启动,不存在修改文件和整个环境不一致的情况,而且是任何修改都生效。但是这里的热加载却有限制。吾经过测试发现,至少在修改controller上方法的requestMapping时是不会马上生效。因为这个是在启动时就已经加载的,所以这也是热加载修改什么加载什么带来的必然结果。
二:热部署
热部署网上有很多博客,基本可以说是四步。
1)修改build为自动编译
2)允许运行时编译:alt+ctrl+shift+/ 调出Registry,选中运行时编译
3)添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
4)maven编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
这种方式就是修改后会自动重新启动,免去手工重启。并不能实现不重启而自动加载修改的类。
三:热加载
要做到热加载需要两步。一是编译,二是加载。吾经过测试整理出以下:
1)设置自动编译,见2.1
2)设置运行运行时编译,见2.2
3)设置手动“update”或者idea失去焦点时更新类与资源
4)以debug方式启动
这样就能实现修改了类后,手动点击“update" 即idea下面的 刷新按钮,或者点开另外个程序,idea就会重新去加载更新的类。这时马上就能看到更新效果。(项目没有重启,但是会看到idea有一个刷新的动作)。这种方式的局限性前文已有说到。
吾测试时,有以下几个坑。
a)当不以debug方式启动时,设置允许自动编译后,就算反编译类,发现已经更改,就算去手动刷新(ctrl+F10)也不会起作用。我猜想是因为idea内置缓存的原因。所以必须以debug方式启动。
四:结尾
正常的方式是,我们在开发一个功能后,才需要启动项目。或者debug方式去调试问题。至于说热部署和热加载,哪种更适合你的特殊需要,就格取所好吧!
最新文章
- memset中的sizeof
- HTML 标题<;h1>;-<;h6>;
- Android调用蓝牙打印机
- poj 3468 成段增减
- STL源码分析----神奇的 list 的 sort 算法实现
- 工厂方法模式(FACTORY METHOD)
- PMP考试--成本管理中常用的概念
- Sublime Text 前端开发常用扩展插件推荐
- 关于arm处理器 内存编址模式 与 字节对齐方式 (转)
- 【转】Android 应用测试总结
- PHP获取指定年份指定月份的天数
- Media Queries for Standard Devices
- springboot 1.5.2 thymeleaf 标签未关闭异常解决办法
- GrideSearchCV 优化算法参数
- Spring定时任务(一):SpringTask使用
- 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》
- Magento 目录基本介绍
- MySQL高级知识(四)——Explain
- 【推荐】使用Ultrapico Expresso学习正则表达式
- 【Maven】基础概念、仓库、构建与部属