欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > Spring Boot 热部署详解,包含详细的配置项说明

Spring Boot 热部署详解,包含详细的配置项说明

2025/4/13 8:40:00 来源:https://blog.csdn.net/zp357252539/article/details/147164781  浏览:    关键词:Spring Boot 热部署详解,包含详细的配置项说明

Spring Boot 热部署详解

在这里插入图片描述


1. 热部署简介

热部署(Hot Deployment)允许在应用运行时修改代码或配置文件,无需重启应用即可使更改生效。Spring Boot 通过 spring-boot-devtools 模块实现这一功能,其核心依赖于 LiveReload 技术和自动重启机制。


2. 启用热部署的步骤
  1. 添加依赖
    pom.xml 中引入 spring-boot-devtools,并设置 <optional>true</optional> 避免传递依赖:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>
    </dependency>
    
  2. 重启应用
    首次启用需重启应用,之后修改代码或资源文件时,应用会自动检测并重启。

  3. 验证配置
    查看日志确认 LiveReload 服务器启动:

    o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729
    

3. 热部署核心原理
  • LiveReload:通过 WebSocket 监听文件变化,通知浏览器或客户端刷新。
  • 自动重启:监控类路径(classpath)的文件变化,触发应用重启。

4. 配置项详解

以下是 spring-boot-devtools 的关键配置项,通过 application.propertiesapplication.yml 配置:

配置项默认值说明
spring.devtools.livereload.enabledtrue启用/禁用 LiveReload 服务器。
spring.devtools.livereload.port35729LiveReload 服务器端口。
spring.devtools.restart.additional-exclude空字符串在默认排除路径基础上,新增不触发重启的文件夹(如 src/main/resources)。
spring.devtools.restart.additional-paths空字符串在默认监控路径基础上,新增需触发重启的文件夹(如 src/main/java)。
spring.devtools.restart.enabledtrue启用/禁用自动重启功能。
spring.devtools.restart.excludeMETA-INF/maven/**,<br>**/src/main/resources/**,<br>**/src/main/static/**,<br>**/src/main/public/**,<br>**/src/main/templates/**,<br>**/*Test.class,<br>**/*Tests.class,<br>git.properties默认排除路径(修改这些路径的文件不会触发重启)。
spring.devtools.restart.poll-interval1000ms检测文件变化的时间间隔(单位:毫秒)。
spring.devtools.restart.quiet-period400ms在无变化时,触发重启前的静默期(避免频繁重启)。
spring.devtools.restart.trigger-file空字符串指定一个文件,修改该文件时触发重启(如 trigger.txt)。

5. 配置项使用示例
# 禁用 LiveReload
spring.devtools.livereload.enabled=false# 自定义 LiveReload 端口
spring.devtools.livereload.port=35730# 新增排除路径(如日志文件)
spring.devtools.restart.additional-exclude=logs/**# 新增监控路径(如自定义配置目录)
spring.devtools.restart.additional-paths=config/# 设置触发文件
spring.devtools.restart.trigger-file=reload.txt

6. 注意事项
  • 排除路径:默认排除静态资源(如 src/main/resourcespublic)和测试类,修改这些文件不会触发重启。
  • IDE 配置:需确保 IDE(如 IntelliJ、Eclipse)支持自动编译,否则修改代码后需手动保存。
  • 远程调试:若通过远程调试启动应用,需添加参数 -noverify 以提升重启速度:
    java -noverify -jar your-app.jar
    

7. 完整配置项表格总结
配置项默认值说明
spring.devtools.livereload.enabledtrue是否启用 LiveReload 服务器。
spring.devtools.livereload.port35729LiveReload 服务器端口。
spring.devtools.restart.additional-exclude空字符串新增不触发重启的路径。
spring.devtools.restart.additional-paths空字符串新增需触发重启的路径。
spring.devtools.restart.enabledtrue是否启用自动重启。
spring.devtools.restart.exclude默认路径(见上文)默认排除路径,修改这些路径的文件不会触发重启。
spring.devtools.restart.poll-interval1000ms文件变化检测间隔。
spring.devtools.restart.quiet-period400ms触发重启前的静默期。
spring.devtools.restart.trigger-file空字符串指定触发重启的文件。

8. 常见问题
  • Q:修改代码后应用未重启?
    A:检查是否保存文件,IDE 是否自动编译,或排除路径是否包含修改的文件。
  • Q:LiveReload 未生效?
    A:确保浏览器插件(如 LiveReload 插件)已安装并启用,且端口未被占用。
  • Q:如何禁用特定模块的热部署?
    A:在 exclude 中添加路径,或通过 additional-exclude 扩展排除列表。

通过以上配置和步骤,可灵活控制 Spring Boot 应用的热部署行为,提升开发效率。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词