当前位置: 首页 > 知识库问答 >
问题:

Spring配置:具有相同类引用的2个bean

赫连华皓
2023-03-14

Spring配置:我创建了2个bean,引用了相同的类但不同的数据库会话。

<bean id="abc1" class="abc">
<bean id="abc2" class="abc">

现在有没有办法将id为“abc1”的bean设置为用于自动装配的默认bean,并在像这样明确提到时使用abc2进行自动装配:

@Autowiring
@Qualifier("abc2")
private abc obj;

解决方案:

<bean id="abc1" class="abc" primary="true">

使abc1默认为自动连接。

为了创建abc2的实例,我们可以使用:

@Autowired
@Qualifier("abc2")
private abc obj;

共有2个答案

常俊侠
2023-03-14

如果跳过限定符注释,Spring将查找与私有成员同名的bean。例如:

@Autowired
private abc abc1; //Spring will search for a bean with id="abc1"

这是您可以使用abc1作为默认值。

如果您不想让Spring搜索特定的bean,那么您可以触发限定符,然后Spring将不关心如何调用成员,而是将其值分配给引用具有与限定符注释中指出的id相同的bean

@Autowired
@Qualifier("abc2")
private abc theNameDoesNotMatter;
慎建本
2023-03-14

xml的注释或属性正是用于此目的。以下是相同的详细信息。这里有很好的记录。

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Primary.html

所以如果你提到<代码>

 类似资料:
  • 问题内容: 我有以下定义。 在我的bean定义中,我有两个相同类型的bean 如果有所不同,则从另一个xml文件导入第二个bean。它们也设置了不同的属性。为什么spring不会抛出错误,因为已经定义了2个相同类型的bean。它是否使用变量名,因为它们与bean id匹配。dao是不同的,如果我对两个不同的bean使用@Qualifiers,则功能可以按预期工作。 这是一个更简洁的版本。我没有考虑

  • 在Springboot中有两个不同的@RestController使用不同的MappingJackson2HttpMessageConverter吗?...或者MappingJackson2HttpMessageConverter对于Spring Boot应用程序中的所有@RESTController是通用的吗? 基本上,目标是使用不同的MappingJackson2HttpMessageConv

  • 假设我有以下几点 我无法指定要在每个子类中使用的服务实现。我已经考虑过使用@Qualifier,但是我必须在每个子类中重新声明属性并在那里使用它,并且希望它覆盖父类。 这些类的目的是同时提供API的两个版本。因此,这两个版本将同时处于活动状态。 从Spring是如何注入豆子的角度来看,这确实是一种反模式,所以我对其他方法持开放态度。

  • 目前,我有一个类分数,它允许我用三种不同的方式创建分数 对于一个整数,在这种情况下,给定的整数将是分子,分母将设置为1 有2个整数,分子和分母 最后一种方法是解析一个字符串,该字符串必须与REGEX-?\d/[1-9]\d* gcd将尽可能减少生成的分数。 我现在想实现的是,具有相同分子和分母的分数实例具有相同的引用例如。 应该返回true。 我研究了一些关于泛型和边界的章节,但我不确定这是否是我

  • 有人成功地在Spring Boot应用程序中配置了两个具有不同数据源的hikari连接池吗?如何使用application.properties来完成?

  • 我正在使用java。util。ServiceLoader创建轻量级插件框架。 我目前正在努力解决如何拥有多个具有相同FQN的实现类。我想在类路径上拥有同一个插件的两个副本,并且可以访问META-INF/services目录中给出的两个实现类。 以下是一些简单的eclipse项目,它们说明了我的意思:https://docs.google.com/open?id=0B4MxFm-ACB3IUmswN