如何同时使用spring-cloud-starter-config和spring-boot-devtools并解决启动报错
根因说明
报错的核心原因是Spring Boot DevTools的热重启类加载机制与Spring Cloud Config的bootstrap上下文初始化逻辑冲突,两个上下文先后注册了同一个SpringApplicationAdmin JMX MBean,最终抛出InstanceAlreadyExistsException异常。
解决方案
方案1:禁用Spring Boot Admin JMX功能(本地开发推荐)
本地开发场景下Admin JMX功能几乎没有使用必要,直接在bootstrap-local_dev.yaml或application.yaml中添加如下配置关闭自动注册即可解决冲突:
spring: application: admin: jmx: enabled: false
方案2:保留JMX功能的兼容配置
如果业务需要保留JMX相关功能,可以开启JMX Bean自动生成唯一名称的配置,避免重名冲突:
spring: jmx: unique-names: true
附加优化说明
你日志中的Could not locate PropertySource: None of labels [] found警告是因为引入了config依赖但没有配置有效的远程配置中心地址,如果local_dev环境不需要拉取远程配置,可以追加配置关闭config客户端功能,消除警告:
spring: cloud: config: enabled: false
内容的提问来源于stack exchange,提问作者Jasper Citi
相关产品推荐
相关产品推荐

