2010-12-16 6 views
26

같은 클래스의 두 개의 서로 다른 콩 autowiring은 @Autowire 주석이 자동으로 추가되었습니다.나는 다음과 같이 연결 풀을 래핑하는 클래스, 클래스가 스프링 구성에서의 연결 정보를 얻을 수대로

내 질문은, 어떻게이 콩을 복제하고 다른 연결 세부 사항을주고 @Autowire 서비스에 있습니다.

<bean id="jedisConnectorPOD" class="com.legolas.jedis.JedisConnector" init-method="init" destroy-method="destroy"> 
     <property name="host" value="${jedis.pod.host}" /> 
     <property name="port" value="${jedis.pod.port}" /> 
    </bean> 

및 서비스에 : : 위 외에도 의미는 내가 가진 것

@Autowired //bean of id jedisConnector 
JedisConnector beanA; 

@Autowired //bean of id jedisConnectorPOD 
JedisConnector beanB; 

답변

33

당신은 @Qualifier으로 @Autowired을 결합 할 수 있지만, 대신 @Autowired이 경우에, 나는 @Resource을 사용하는 것이 좋습니다 :

@Resource(name="jedisConnector") 
JedisConnector beanA; 

@Resource(name="jedisConnectorPOD") 
JedisConnector beanB; 

또는 간단한 :

@Resource 
JedisConnector jedisConnector; 

@Resource 
JedisConnector jedisConnectorPOD; 
+3

두 번째는 디버그 기호를 사용할 수있는 경우에만 작동합니다. – OrangeDog

+1

또한 JEE 응용 프로그램 서버 (예 : JBoss)를 사용하는 경우 @ Resource를 처리하려고 시도하며 모든 것이 중단됩니다. – OrangeDog

+0

@OrangeDog :이 문제는 JBoss에서 아무런 문제없이 사용합니다. – skaffman

32
@Autowired 
@Qualifier("jedisConnector") 
JedisConnector beanA; 

@Autowired 
@Qualifier("jedisConnectorPOD") 
JedisConnector beanB; 
+0

http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s11.html 기준 가장 정확한 답변입니다. – sancho21

관련 문제