Spring Boot使用@Timed注解报io.micrometer.core包不存在如何解决
问题根因
编译报错提示找不到io.micrometer.core.annotation.Timed包,本质是项目构建阶段未正确加载到包含该注解定义的micrometer-core依赖,常见触发原因如下:
- Spring Boot依赖版本不统一:当前项目中
spring-boot-starter-webflux使用2.5.2版本,而spring-boot-starter-test使用2.3.8.RELEASE版本,跨版本的Spring Boot对micrometer组件的版本管理规则不兼容,手动指定的micrometer 1.7.1版本和低版本Spring Boot的依赖体系冲突,导致构建工具自动裁剪了micrometer-core的有效类,或拉取了不包含该注解的低版本micrometer包。 - Gradle依赖未同步:修改build.gradle配置后未执行依赖刷新操作,本地未下载对应版本的micrometer-core jar包。
- 缺失AOP依赖:
TimedAspect的正常运行需要Spring AOP组件支持,若项目未引入aop starter也会引发相关启动报错。
修复步骤
- 统一所有Spring Boot官方starter的版本,避免跨版本冲突,示例中将测试依赖版本对齐到2.5.2:
testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '2.5.2'
- 移除手动声明版本的micrometer-core依赖,交由Spring Boot依赖管理机制自动匹配兼容版本,修改micrometer相关配置为:
// 移除手动指定版本的micrometer-core配置 implementation group: 'io.micrometer', name: 'micrometer-registry-prometheus'
- 补充Spring AOP starter依赖,保障
TimedAspect正常运行:
implementation 'org.springframework.boot:spring-boot-starter-aop'
- 强制刷新Gradle依赖并清理编译缓存:IDEA用户可点击右侧Gradle面板的刷新按钮,命令行用户执行
./gradlew clean build --refresh-dependencies即可。
内容的提问来源于stack exchange,提问作者user3414175
相关产品推荐
相关产品推荐

