报错解决记录:Annotation-specified bean name ‘xxx‘ for bean class [xxx]conflicts with existing...

问题:

对代码做修改后启动服务,爆出了如下错误:

2024-11-13 21:43:25,564 ERROR [main][SpringApplication.java:837] - Application run failed
org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'mqMessageHistoryMapper' for bean class [com.xuecheng.messagesdk.mapper.MqMessageHistoryMapper] conflicts with existing, non-compatible bean definition of same name and class [org.mybatis.spring.mapper.MapperFactoryBean]
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:349)
	at org.mybatis.spring.mapper.ClassPathMapperScanner.checkCandidate(ClassPathMapperScanner.java:256)
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:287)
	at org.mybatis.spring.mapper.ClassPathMapperScanner.doScan(ClassPathMapperScanner.java:181)
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.scan(ClassPathBeanDefinitionScanner.java:254)
	at org.mybatis.spring.mapper.MapperScannerConfigurer.postProcessBeanDefinitionRegistry(MapperScannerConfigurer.java:356)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:126)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
	at com.xuecheng.MediaApplication.main(MediaApplication.java:12)
2024-11-13 21:43:25,572 WARN [Thread-9][HttpClientBeanHolder.java:108] - [HttpClientBeanHolder] Start destroying common HttpClient
2024-11-13 21:43:25,573 WARN [Thread-9][HttpClientBeanHolder.java:114] - [HttpClientBeanHolder] Destruction of the end

分析及解决办法:

关键这段:
Annotation-specified bean name ‘mqMessageHistoryMapper’ for bean class [com.xuecheng.messagesdk.mapper.MqMessageHistoryMapper] conflicts with existing, non-compatible bean definition of same name and class [org.mybatis.spring.mapper.MapperFactoryBean]

看到com.xuecheng.messagesdk.mapper.MqMessageHistoryMapper这个包有点疑惑,因为我并无在这个模块引用,因为这个模块有自己的MqMessageHistoryMapper,报错信息中的MapperFactoryBean也说明了这一点。在pom文件中也无发现引入这个依赖的地方。

经过一番无效的寻找后,突然想起前面因为idea的提示不小心将某个库加入了类路径。然后果然在模块设置里面找到了这个依赖:
报错解决记录:Annotation-specified bean name ‘xxx‘ for bean class [xxx]conflicts with existing..._第1张图片
将该依赖删除后就可以启动服务。

所以下次遇到idea的这个提示时要小心。
报错解决记录:Annotation-specified bean name ‘xxx‘ for bean class [xxx]conflicts with existing..._第2张图片

你可能感兴趣的:(spring,cloud)