【第七篇】 SpringBoot项目的热部署

发布于:2025-06-09 ⋅ 阅读:(19) ⋅ 点赞:(0)

简介

        本文介绍了热部署(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


网站公告

今日签到

点亮在社区的每一天
去签到