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

Spring Boot升级至2.7.0后找不到MetricsEndpoint合格Bean问题

问题根因

从Spring Boot 2.2版本开始,Actuator模块重构了端点的自动装配逻辑,你从2.1.18升级到2.7.0跨了多个版本迭代,MetricsEndpoint不再是引入spring-boot-starter-actuator就无条件注册的Bean,它的实例化新增了明确的生效条件,当前环境不满足任意一个条件时,容器就不会创建该类型的Bean,最终抛出你看到的注入失败异常。
常见触发场景有三类:

  • 依赖不满足:MetricsEndpoint对应的自动配置类MetricsEndpointAutoConfiguration带有@ConditionalOnClass(MeterRegistry.class)条件,要求类路径下必须存在Micrometer核心包的MeterRegistry类。如果引入actuator starter时手动排除了传递依赖的micrometer-core,自动配置就会直接跳过,不会注册MetricsEndpoint的Bean。2.1.x版本没有加这个类存在的校验逻辑,所以升级前不会触发该问题。
  • 端点被主动禁用:MetricsEndpoint上标注了@ConditionalOnEnabledEndpoint条件,只有metrics端点处于启用状态时才会初始化Bean。如果你在配置中设置了management.endpoints.enabled-by-default=false全局关闭所有Actuator端点,又没有单独配置management.endpoint.metrics.enabled=true开启metrics端点,就会导致Bean不创建。
  • 自动配置被排除:如果在启动类@SpringBootApplication注解的exclude参数、或者配置文件spring.autoconfigure.exclude配置项中,手动排除了MetricsEndpointAutoConfiguration或MetricsAutoConfiguration,也会导致该Bean无法被注册到容器。
排查修复步骤
  • 先检查依赖配置:确认spring-boot-starter-actuator的依赖规则中没有排除micrometer-core传递依赖,正常引入actuator starter时会自动带入这个包,不需要额外手动引入,如果存在对应的排除规则直接删除即可。
  • 检查Actuator相关配置:确认没有主动关闭metrics端点,如果全局关闭了所有Actuator端点,需要补充配置单独开启metrics端点,配置示例:
management:
  endpoint:
    metrics:
      enabled: true
  • 检查自动配置排除列表:遍历启动类注解、全局配置中的自动配置排除项,删除和Metrics端点、Micrometer指标自动装配相关的排除规则。
  • 以上步骤排查完仍有问题的话,启动应用时加上--debug参数打印自动配置报告,在报告中搜索MetricsEndpointAutoConfiguration,会明确标注该自动配置类未生效的具体原因,对应调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:54:22