You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot 2.7.14中web与actuator依赖共存启动异常问询

Spring Boot 2.7.14中actuator与web依赖的启动挂起问题

Spring Boot 2.7.x版本里,spring-boot-starter-actuator和spring-boot-starter-web本身没有官方声明的直接冲突,但在特定场景下确实会出现Tomcat启动挂起、需要手动终止的情况,这类问题大多和JMX配置冲突、Tomcat线程阻塞或依赖传递导致的版本不一致有关。

常见触发场景及解决办法

  • JMX端口或MBean命名冲突
    启用actuator的JMX端点时,可能和Tomcat内部的JMX组件端口、MBean命名产生冲突,引发线程阻塞。可以显式配置JMX参数,避免自动绑定的冲突:

    spring.jmx.enabled=true
    spring.jmx.server.port=9090
    spring.jmx.default-domain=your-app-custom-domain
    management.endpoints.jmx.exposure.include=*
    
  • 依赖传递导致Tomcat版本不一致
    检查项目依赖树,确认spring-boot-starter-actuator传递引入的Tomcat组件版本,是否和spring-boot-starter-web依赖的Tomcat版本不匹配。可以通过构建工具强制统一Tomcat版本:
    Maven示例:

    <properties>
        <tomcat.version>9.0.76</tomcat.version> <!-- Spring Boot 2.7.14对应的官方Tomcat版本 -->
    </properties>
    

    Gradle示例:

    ext['tomcat.version'] = '9.0.76'
    
  • Actuator Web端点自动配置干扰
    如果只需要JMX监控端点,可以尝试禁用Actuator的Web端点自动配置,仅保留JMX相关配置:

    management.endpoints.web.exposure.exclude=*
    management.endpoints.jmx.exposure.include=health,info,metrics
    

官方相关问题参考

在Spring Boot的官方issue追踪中,有不少用户反馈过类似的启动挂起案例,多数集中在JMX相关的线程阻塞场景,官方给出的核心建议是显式配置JMX参数,或者排查项目中自定义的JMX相关Bean是否存在冲突。


内容的提问来源于stack exchange,提问作者Robert Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 01:43:12