【第七篇】 SpringBoot项目的热部署
简介
本文介绍了热部署(Hot Deployment)的概念、使用场景及在IDEA中的配置方法。热部署可在不重启应用的情况下动态更新代码,提升开发效率,适用于调试、微服务架构和自动化测试等场景。文章详细说明了热部署的实现步骤(导入坐标、快捷键触发),区分了Restart(加载自定义代码)和ReLoad(加载jar包)的差异,并提供了自动热部署的设置方法(通过IDEA配置或快捷键激活)。此外,还列举了默认不触发热部署的目录及如何手动配置排除目录,最后提到可通过属性关闭热部署功能。文章内容若存在错误或需改进的地方,欢迎大家指正!若对操作有任何疑问欢迎留言!非常感谢!
目录
一、热部署简介及场景
1、简介
2、典型场景
二、热部署的使用
1、导入坐标
2、使用
3、关于热部署
4、示例
三、自动热部署
1、使用步骤
2、激活方式
四、热部署相关配置
1、设置不触发热部署的目录
2、关闭热部署功能
一、热部署简介及场景
1、简介
热部署(Hot Deployment)是指在不重启应用的情况下,动态更新代码、资源或配置,使修改立即生效。通常用于开发环境,可以显著提升开发效率,避免频繁重启应用。
2、典型场景
- 修改代码后无需手动重启,直接看到效果(如调试接口、修复 Bug)
- 在微服务架构中,重启单个服务可能依赖其他服务,热部署避免连锁重启。
- 在自动化测试环节,热部署可减少部署时间,加速反馈循环。
二、热部署的使用
1、导入坐标
2、使用
在项目运行时不用停止,直接点击Build Project或者使用快捷键Ctrl + F9,即可完成热部署。
3、关于热部署
- 重启(Restart):自定义开发代码,包含类、页面、配置文件等,加载位置为restart类加载器
- 重载(ReLoad):jar包,加载位置为base类加载器
热部署功能仅仅代表Restart的过程而不包含ReLoad的过程,而程序在第一次启动的时候既包含Restart过程又包含ReLoad过程。也就是说热部署仅仅加载当前开发者自定义开发的资源,不加载jar资源。
4、示例
修改前
修改并热部署后
三、自动热部署
若不想点击Build Project或者使用快捷键Ctrl + F9,那么也是可以在IDEA中设置自动热部署功能的。
前提:已导入devtools坐标
1、使用步骤
第一步,在file-settings中的Comoiler中设置自动构建项目
第二步、在file-settings中的Advanced Settings中搜索compiler,然后将下面这个选项勾选上。
也可以在IDEA页面上使用快捷键Ctrl+Alt+Shift+/,然后点击Registry,然后找到这个选项。
2、激活方式
由此便开启了IDEA自动热部署的设置,激活方式是当IDEA失去鼠标焦点5秒之后就会热部署一次,测试方式是可以修改代码,然后打开浏览器倒数5秒就能发现控制台已经重启。
四、热部署相关配置
1、设置不触发热部署的目录
默认不触发热部署的目录
- /META-INF/maven
- /META-INF/resources
- /resource
- /static
- /public
- /templates
虽然这里排除了resources目录,但是配置文件还是会正常参数热部署的。因为这些目录一般会用于存放静态文件,而配置文件虽然在resources目录下,但配置文件却是核心文件,所以devtools做了默认处理,于是配置文件还是会正常参与热部署。
手动设置不参于热部署的目录,只需要在配置文件中配置指定目录的通配符即可
2、关闭热部署功能
只需要将spring.devtools.restart.enabled的属性设置为false即可
上一篇——》【第六篇】 SpringBoot的日志基础操作https://blog.csdn.net/qq1743177790/article/details/148497495