Spring mvc自动扫描不同包类名相同bean名字冲突该什么解决?

RunACoding 发布于 2017/01/17 09:19
阅读 2K+
收藏 0

Spring mvc自动扫描不同包类名相同bean名字冲突该什么解决?


Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'CommodityClassifyMapper' for bean class [com.manage.commodity.dao.CommodityClassifyMapper] conflicts with existing, non-compatible bean definition of same name and class [com.client.order.dao.CommodityClassifyMapper]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:320)
at org.mybatis.spring.mapper.ClassPathMapperScanner.checkCandidate(ClassPathMapperScanner.java:237)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:259)
at org.mybatis.spring.mapper.ClassPathMapperScanner.doScan(ClassPathMapperScanner.java:164)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.scan(ClassPathBeanDefinitionScanner.java:226)
at org.mybatis.spring.mapper.MapperScannerConfigurer.postProcessBeanDefinitionRegistry(MapperScannerConfigurer.java:319)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:686)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:524)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:128)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:108)
at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:251)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
... 25 more





加载中
0
尚浩宇
尚浩宇
@service(“aa”)
尚浩宇
尚浩宇
@RunACoding 回复@RunACoding : 其它层也一样,@controller、@dao等等
RunACoding
RunACoding
回复@尚浩宇 : 我在service层是这么用的
尚浩宇
尚浩宇
回复 @skhuhu : 哈哈
skhuhu
skhuhu
又看见同宗的小伙伴了
0
jaakan
jaakan
貌似不能重名 如果是自动注入的  要在其中一个注解中显示命名不一样的bean名称
RunACoding
RunACoding
回复@jaakan : 是使用自动扫描dao层
0
小隐隐于市
小隐隐于市
标注具体的name名称就可以实现了
RunACoding
RunACoding
回复@小隐隐于市 : 就在注解是吧,然而没有什么机制让扫描到相同名称自动更换其他名称吗
0
skhuhu
skhuhu
换名字啊···就算你给别名了···按照一般习惯别人也会搞错··别埋雷
RunACoding
RunACoding
回复@skhuhu : 哪有什么比较好的办法呢?
0
yzbty23
yzbty23
改个名字就好了。
yzbty23
yzbty23
配置文件。
RunACoding
RunACoding
回复@yzbty23 : 注解中标注吗?
0
happut
happut
加名字,注入的时候加    @Qualifier("aa")
RunACoding
RunACoding
回复@happut : 自动扫描就不能使用啦?
0
kakai
kakai
还好我没用spring,我自己的类扫描器,不同包的同名类不冲突
RunACoding
RunACoding
回复@BoXuan : 你自己的什么用,指点下
0
p2ng
p2ng

放到spring里面的Bean,名字不能相同了。

都放两个老王,你让spring取哪个老王出来...

RunACoding
RunACoding
回复@p2ng : 问题是自动扫描,不同包下的相同类,bean名称什么解决?
0
漫步1223
漫步1223
用注解给重新定义一下两个类bean的名字
RunACoding
RunACoding
回复@tianhyapply : 这个相同名称的话只能这样吗?
返回顶部
顶部