当前位置: 首页 > 面试题库 >

自动装配相同类别的两个不同的bean

凌展
2023-03-14
问题内容

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

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


 类似资料:
  • 我使用一个Android库,它要求我创建两个类,每个类继承自不同的类 (具有公共基类) 现在我有这个代码: 我必须复制这个类来创建一个扩展,即使我的两个类共享完全相同的代码。 我简化了示例的代码,但重复可能很重要 我决定将代码放在这两个类之外的静态方法中,并在类重写的方法中调用它们,但我认为必须有一种更干净的方法来做到这一点。 你能帮我解决这个问题吗? 和都继承自。

  • 我还希望com.mypack的级别“trace”与“info”的行为方式相同。到目前为止,我还没有取得任何成功。我需要像这样的东西 感谢你的帮助。

  • 我有两个类,它们具有相同的类名并使用相同的包名。但是,这两个类文件位于不同的目录中。这两个类之间的另一个不同之处是,每个类中都有其他类中没有的方法。本质上,我想将这些方法拆分为两个使用相同名称但不同文件夹的单独文件。 理论上,我认为这是可能的,因为Java编译器在构建输出时确实维护了目录结构。所以在运行时,如果在类中调用了一个方法,Java可能会在任何一个文件中找到该方法。 这可能吗?我使用的是I

  • 其中一个测试通过,另一个给出以下错误: java.lang.ClassCastException:类org.springframework.http.ResponseEntity不能强制转换为类org.junit.jupiter.api.function.executable(org.springframework.http.ResponseEntity和org.junit.jupiter.api

  • 我有一个电子商务网站,我想为不同的子类别相同的鼻涕虫。例如: 首先,我在产品中创建男性父类别。它的鼻涕虫是男人,它的url是网站_url/men 但我需要子类别url,如:

  • 但是我有两种回购方式 如何创建两个bean,其中一个是用注入的,另一个是用注入的?