1. 应用范围。
同一个redis manager的不同初始化对象
<bean id="jedisPaopaoDataPoolManager" class="com.qiyi.paopao.common.jedis.JedisConsistencyPoolManager">
<bean id="jedisCirclePoolManager" class="com.qiyi.paopao.common.jedis.JedisConsistencyPoolManager">
在代码中直接注入
@Autowired private JedisConsistencyPoolManager jedisPaopaoDataPoolManager;
2.
我有一个包装一个连接池的类,该类从弹簧配置获取其连接细节,如下所示:
<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;
您可以将@Autowired与@Qualifier组合,但在这种情况下,而不是@Autowired,我建议使用@Resource:
@Resource(name="jedisConnector")
JedisConnector beanA;
@Resource(name="jedisConnectorPOD")
JedisConnector beanB;
甚至更简单:
@Resource
JedisConnector jedisConnector;
@Resource
JedisConnector jedisConnectorPOD;