Autowiring two different beans of same class(自动装配同一类的两个不同的bean)
问题描述
我有一个封装了一个连接池的类,该类从一个spring配置中获取它的连接细节,如下所示:
I have a class which wraps a connection pool, the class gets its connection details from a spring configuration as shown below:
<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 注释自动装配.
This bean is later used in a service and is autowired with the @Autowire annotation.
我的问题是,我怎样才能复制这个 bean 并给它不同的连接细节,然后在服务中 @Autowire 它.意思除了上面我还有:
My question is, how can i duplicate this bean and give it different connection details and then @Autowire it in the service.
meaning In addition to above I will have :
<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:
You can combine @Autowired with @Qualifier, but in this case instead of @Autowired, I suggest using @Resource:
@Resource(name="jedisConnector")
JedisConnector beanA;
@Resource(name="jedisConnectorPOD")
JedisConnector beanB;
甚至更简单:
@Resource
JedisConnector jedisConnector;
@Resource
JedisConnector jedisConnectorPOD;
这篇关于自动装配同一类的两个不同的bean的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:自动装配同一类的两个不同的bean
基础教程推荐
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 存储 20 位数字的数据类型 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
