2种豆名称相同,但在不同的封装; 如何自动装配呢?(2 beans with same name

2019-06-25 11:09发布

我有2种豆具有相同名称的应用程序,但在不同的包。 因为它不能采取何种豆决定我的Spring应用程序失败。 对此有任何解决方案? 豆目前没有实现特定的接口。

看到该异常的编辑例子如下所示:

Caused by:
org.springframework.context.annotation.ConflictingBeanDefinitionException:
Annotation-specified bean name 'dataTransferHandler' for bean class
[aaaaa.ws.handler.DataTransferHandler] conflicts with existing,
non-compatible bean definition of same name and class
[bbbbb.ws.handler.DataTransferHandler]

Answer 1:

你将不得不让你的豆子不同的名称-如果有多个豆具有相同名称的定义,然后再定义一个将覆盖前面定义的一个-所以你的情况只有一个bean将与名称存在dataTransferHandler

你可以给这两种豆子不同的名称,这样既可以存在,你可以在正确的或者使用注: @AutoWired @Qualifier("dataTransferHandler") OR @Resource(name="dataTransferHandler")



Answer 2:

你可以给属性主要=“true”以你想要自动连接时享有优先权豆认定中。 但是bean的名字必须是不同的。 没有为同一bean名字无解。

在运行的时候,你将得到自动装配类则主真豆将获得自动装配的偏好。 希望这可以帮助你。 干杯。



文章来源: 2 beans with same name but in different packages; how to autowire them?