복붙노트

[SPRING] 같은 클래스의 두 가지 다른 콩을 autowiring

SPRING

같은 클래스의 두 가지 다른 콩을 autowiring

연결 풀을 래핑하는 클래스가 있으면 클래스는 아래와 같이 스프링 구성에서 연결 세부 정보를 가져옵니다.

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

이 bean은 나중에 서비스에서 사용되며 @Autowire 어노테이션으로 autowired됩니다.

내 질문은, 어떻게이 콩을 복제하고 다른 연결 세부 정보를 제공하고 다음 @ 서비스에서 그것을 입력 할 수 있습니다. 의미 위에 이외에 나는 가질 것이다 :

    <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;

해결법

  1. ==============================

    1.@Autowired와 @Qualifier를 결합 할 수 있지만이 경우 @Autowired 대신 @Resource를 사용하는 것이 좋습니다.

    @Autowired와 @Qualifier를 결합 할 수 있지만이 경우 @Autowired 대신 @Resource를 사용하는 것이 좋습니다.

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

    또는 더 간단하게 :

    @Resource
    JedisConnector jedisConnector;
    
    @Resource
    JedisConnector jedisConnectorPOD;
    
  2. ==============================

    2.

    @Autowired
    @Qualifier("jedisConnector")
    JedisConnector beanA;
    
    @Autowired
    @Qualifier("jedisConnectorPOD")
    JedisConnector beanB;
    
  3. from https://stackoverflow.com/questions/4462466/autowiring-two-different-beans-of-same-class by cc-by-sa and MIT license