自动装配同一类的两个不同的bean

Autowiring two different beans of same class(自动装配同一类的两个不同的bean)
本文介绍了自动装配同一类的两个不同的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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)