2012-09-25 3 views
0

autowired = "byType"속성을 가진 하나의 bean 이름 "MasterService"가 있습니다. 그 빈에서 나는 하나의 속성을 가지고있다. AccountService accountService; 그리고이 빈의 구현을 "DefaultAccountService"로 등록했습니다. 이제 누군가가 'DefaultAccountService'를 확장하고 'CustomAccountService'를 생성하려고합니다. 또한 "MasterService"를 초기화하는 동안 등록하지만 AccountService [DefaultAccountService 및 CustomAccountService]에 2 개의 Bean이 있다는 예외가 발생합니다. 이 문제를 해결하는 방법을 모릅니다. 귀하의 경우Autowire 'byType'에 대한 Spring Beam Override 문제

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

, 그것은 다음과 같습니다 :

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

답변

2

당신은

이 예제를 참조 @Qualifier 주석이 필요 당신은 기본 자동 와이어 링을 무시하려고합니다. 북한 수동으로 특정 서비스를 연결할 경우는 명확하게, 그래서 테이너는이 경우에 기본이 하지 사용하는 것이 첫눈에 알고

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

그냥 수동으로 와이어 아무것도, 켄트의 답변을하지 않으려면 할 것이다.