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

非Spring Boot的Spring MVC项目如何配置Spring Boot Actuator运行在独立端口

解决方案

核心问题原因

你当前配置的核心问题是未为Actuator初始化独立的Web上下文,Actuator和主Spring MVC应用共用同一个Servlet容器实例,所以自定义的独立端口配置不会生效。

具体修正步骤

  • 第一步:调整依赖

    补充和Actuator版本一致的Spring Boot Web Starter依赖,避免版本不兼容问题:

    group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '1.5.4.RELEASE'
    

    你当前使用的Spring MVC 4.3.9和Spring Boot 1.5.4版本天然兼容,无需调整原有依赖版本。

  • 第二步:修正配置类

    1. 删除MvcConfig类上的@ManagementContextConfiguration注解,该注解是Actuator独立上下文的专属标记,不能用于主MVC配置类。
    2. 清空ActuatorConfig类里手动声明的EmbeddedServletContainerFactory、ManagementServerProperties两个Bean,也不需要手动Import两个Endpoint自动配置类,Spring Boot会自动完成加载。
    3. 保留主配置类上的@EnableAutoConfiguration的排除规则和@EnableWebMvc注解,不需要调整。
  • 第三步:添加端口配置

    在项目的application.properties(或application.yml)中添加以下配置:

    # 主业务服务端口,按需替换为你原来的业务端口
    server.port=8080
    # Actuator独立监听端口
    management.port=9091
    # Actuator访问根路径,和你原来的配置保持一致
    management.context-path=/actuator
    # 测试阶段可关闭安全校验,生产环境按需开启权限控制
    management.security.enabled=false
    

特殊场景说明

如果你当前的项目是打包为War包部署到外部Tomcat运行,而非使用Spring Boot嵌入式容器启动,那么本身就不支持Actuator独立端口配置——外部Tomcat默认只会监听一个端口,这种场景只能使用同一端口加不同路径区分业务接口和Actuator接口。

验证方式

项目启动后,控制台会打印两行端口启动日志,分别对应主业务端口和Actuator的9091端口,直接访问http://localhost:9091/actuator/health即可获取Actuator指标数据,业务接口仍走原端口正常访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:45:03