Подтвердить что ты не робот

Autowiring два разных beans того же класса

У меня есть класс, который обертывает пул соединений, класс получает данные о соединении из конфигурации spring, как показано ниже:

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

Мой вопрос в том, как я могу дублировать этот bean и предоставить ему различные сведения о подключении, а затем @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;
4b9b3361

Ответ 1

Вы можете объединить @Autowired с @Qualifier, но в этом случае вместо @Autowired, я предлагаю использовать @Resource:

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

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

или даже проще:

@Resource
JedisConnector jedisConnector;

@Resource
JedisConnector jedisConnectorPOD;

Ответ 2

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

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