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

Spring Boot 2.5.6集成Actuator+Micrometer触发NoSuchMethodError异常

问题根因

这是典型的依赖版本不兼容问题,触发原因如下:

  1. Spring Boot 2.5.6 内置兼容的micrometer-core版本为1.7.x系列,但你的项目实际引入的是1.3.5版本,版本跨度过大
  2. DistributionStatisticConfig.Builder.serviceLevelObjectives(double[]) 是micrometer-core 1.4.0及以上版本才新增的API,1.3.5版本不存在该方法,当spring-boot-actuator-autoconfigure调用这个不存在的方法时就会抛出NoSuchMethodError
  3. 父POM强制指定了低版本micrometer-core的版本,你之前的依赖覆盖操作没有生效,所以才会出现该问题
  4. 两个报错场景的触发逻辑:
    • 事务开启时报错:事务需要获取HikariCP数据库连接,HikariCP初始化metrics统计器时会调用micrometer的相关API
    • 调用actuator接口时报错:WebMvcMetricsFilter需要统计接口请求耗时,同样会调用到缺失的API

解决方案

  • 方案1:强制覆盖micrometer-core版本(推荐,保留actuator全部功能)
    在当前项目的pom.xml的<dependencyManagement>节点中,手动指定与Spring Boot 2.5.6匹配的micrometer版本:
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
            <version>1.7.12</version>
        </dependency>
    </dependencies>
</dependencyManagement>

如果是Gradle项目,在build.gradle中添加以下配置即可:

ext['micrometer.version'] = '1.7.12'
  • 方案2:禁用metrics自动配置(不需要指标统计功能时可选)
    在Spring Boot启动类上添加排除配置,关闭相关自动装配即可:
@SpringBootApplication(exclude = {
    MetricsAutoConfiguration.class,
    DataSourcePoolMetricsAutoConfiguration.class,
    WebMvcMetricsAutoConfiguration.class
})
  • 方案3:不需要actuator功能时,直接移除pom.xml中所有actuator相关依赖即可彻底解决该问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:06:06