Autowire'byType'的Spring Bean覆盖问题

时间:2012-09-25 14:25:45

标签: java spring javabeans autowired override

我有一个bean名称“MasterService”,其属性为autowired =“byType”。在那个bean我有一个属性    AccountService accountService; 我已将此bean的实现注册为“DefaultAccountService”。现在有人想扩展'DefaultAccountService'并创建'CustomAccountService'。并且还注册但在初始化“MasterService”期间获得了AccountService [DefaultAccountService和CustomAccountService]的2个bean的异常。 我们不知道如何解决这个问题?

提前致谢

2 个答案:

答案 0 :(得分:2)

您需要@Qualifier注释

见这个例子:

http://www.mkyong.com/spring/spring-autowiring-qualifier-example/

在你的情况下,它将是:

@Autowired
@Qualifier("customAccountService")
private  AccountService accountService;

答案 1 :(得分:0)

如果您想覆盖默认的自动装配,我认为如果您手动连接该特定服务会更清楚,因此维护人员一眼就知道在这种情况下默认情况下使用:

<bean id="masterService" ... autowired="byType">
    <property name="accountService" ref="customAccountService"/>
</bean>

如果你只是不想手动连接任何东西,肯特的回答就是这样。