Java 自动连接同一类的两个不同bean
我有一个封装连接池的类,该类从spring配置获取其连接详细信息,如下所示:Java 自动连接同一类的两个不同bean,java,spring,annotations,Java,Spring,Annotations,我有一个封装连接池的类,该类从spring配置获取其连接详细信息,如下所示: 该bean稍后用于服务,并与@Autowire注释自动连接 我的问题是,如何复制这个bean并为其提供不同的连接详细信息,然后在服务中使用它。 除上述含义外,我还将: 在服务中: @Autowired //bean of id jedisConnector JedisConnector beanA; @Autowired //bean of id jedisConnectorPOD JedisConnecto
该bean稍后用于服务,并与@Autowire
注释自动连接
我的问题是,如何复制这个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;
另外,如果同时使用JEE应用程序服务器(例如JBoss),它也会尝试处理@Resource,一切都会中断。@OrangeDog:我使用JBoss时没有任何问题。@skaffman-第一个还是第二个?JBoss5肯定会尽力满足这些资源,即使Spring已经这样做了。它可能会正确,但您可能仍然不想尝试。我在tomcat和spring中使用了第二个选项,它工作得很好。您能证明。。为什么第二种方法适用于这种情况?基于这一点,这是最正确的答案。当bean用
XML定义时,这对我不起作用
@Autowired
@Qualifier("jedisConnector")
JedisConnector beanA;
@Autowired
@Qualifier("jedisConnectorPOD")
JedisConnector beanB;