Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动连接同一类的两个不同bean_Java_Spring_Annotations - Fatal编程技术网

Java 自动连接同一类的两个不同bean

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

我有一个封装连接池的类,该类从spring配置获取其连接详细信息,如下所示:


该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;