繁体   English   中英

Spring配置:2个具有相同类引用的bean

[英]Spring Configuration: 2 beans with same class reference

Spring-configuration:我创建了2个bean,引用了同一个类但不同的数据库会话。

<bean id="abc1" class="abc">
<bean id="abc2" class="abc">

现在有没有办法将id为“abc1”的bean设置为自动装配的默认bean,并在明确提到时使用abc2进行自动装配:

@Autowiring
@Qualifier("abc2")
private abc obj;

解:

<bean id="abc1" class="abc" primary="true">

使abc1默认为自动装配。

为了创建abc2的实例,我们可以使用:

@Autowired
@Qualifier("abc2")
private abc obj;

xml的@primary注释或primary属性完全用于此目的。 这是相同的细节。 这里有很好的记录。

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Primary.html

因此,如果你提到<bean id="abc1" class="abc" primary="true"/>它将优先于abc2 ,你可以在任何需要的地方使用@Qualifier作为abc2 希望这可以帮助。

如果跳过@Qualifier注释,则Spring将查找与private成员同名的bean。 例如:

@Autowired
private abc abc1; //Spring will search for a bean with id="abc1"

这是你可以使用abc1作为默认值。

如果你不想让Spring搜索特定的bean,那么你可以触发@Qualifier ,然后Spring不会关心如何调用该成员,但会指定它的值来引用具有相同id的bean的bean在@Qualifier注释中:

@Autowired
@Qualifier("abc2")
private abc theNameDoesNotMatter;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM