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

@限定符("beanName")和@组件("beanName")之间的区别

笪健
2023-03-14

使用@Qualifer("beanName")@Component("beanName")有什么区别吗?如果没有,是否有首选方法?

共有2个答案

曹疏珂
2023-03-14

它们完全是两种不同的东西,听起来你在拿苹果和橙色和我比较。

@Component用于将一个类声明为Spring bean,而您不能使用@Qualifer来执行此操作。

@Qualifer旨在帮助Spring确定如果有超过1个符合条件的bean进行注入,则要注入哪个bean。它通常与@autowmed一起使用,它在注入点上添加了更多的约束,使得只能在其中注入一个bean。

慎弘化
2023-03-14

通常,您在组件上使用@Component(“beanName”),在自动连接的类上使用@Qualifier(“beanName”)。前任

@Component("myComponent1")
public class MyComponent1 implements MyComponent {
....

}

@Component("myComponent2")
public class MyComponent2 implements MyComponent {
....

}

@Service
public class SomeService implements MyService {

    @Qualifier("myComponent1")
    private MyComponent myComponent;

    ...

}

如果一个bean/组件有多个实现,spring将不知道选择哪个bean,因此需要使用限定符来指定哪个是正确的。

此外,您可以在其中一个组件上使用@主,因此默认情况下总是选择它。

 类似资料:
  • 使用和使用有什么区别吗?如果没有,是否有一种首选的方法?

  • 问题内容: 这些声明之间有何不同? 每种情况下的内存分配如何? 问题答案: 要更正编译错误,请使用以下语句之一替换 下一节将以上陈述相互比较 字符串常量 “ MY PROFESSION”是一个常量,并存储在String池中 是不可变的,即完整的内容无法修改。 字符串的大小/长度是固定的(无法附加) 字符数组 保存String的基础数组的副本(通过)并存储在堆空间中 通过加载单个字符常量在堆栈框架中

  • 本文向大家介绍字符数组和字符串之间的区别,包括了字符数组和字符串之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解字符数组和字符串之间的区别。 字符串 他们是不可变的。 一旦它们被定义,就不能被更改。 它指的是一个字符序列,表示为单个数据类型。 它包含了substring()、charAt()等内置函数。 可以使用' + '操作符将字符串追加到一起,从而形成一个新的字符串。

  • 问题内容: 如果移位的数字为正,>>>和>>的工作原理相同。 如果移位数为负,>>>将最高有效位填充为1,而>>操作将MSB填充为0。 我的理解正确吗? 如果负数是在MSB设置为1的情况下存储的,而不是Java使用2s补码的方式,则运算符的行为将完全不同,对吗? 问题答案: 表示负数的方式称为2的补码。为了演示其工作原理,以-12为例。12的二进制值为00001100(假设整数为8位,尽管实际上它

  • 问题内容: 声明 Array 和 Dictionary的 更好方法,我都使用了: 对我来说,编码方面的速度非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个? 问题答案: 从Swift上的iOS开发者库… Swift数组的类型完整写为Array ,其中Element是允许数组存储的值的类型。您还可以将简写形式的数组类型写为[Element]。尽管 这两种形式在功能上是相同的 ,但

  • 我有一组不重叠的,不相邻的区间,例如[{10,15},{30,35},{20,25}]。它们没有排序,但如果需要,我可以对它们进行排序。 现在,我得到了一些新的区间,例如{5,32},并希望生成一组新的区间来描述差异:这个新区间所覆盖的范围不在该集合中。在这个例子中,答案是:[{5,9},{16,19},{26,29}]。 计算这个的快速算法是什么?请注意,集合中通常有1个,有时有2个,很少有3个