自动装配同一个类的两个不同的bean(redis,mysql等使用)

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;

转载于:https://my.oschina.net/u/2984281/blog/2998912

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值