解决Bean歧义性的方案
当我们Spring在装配的时候如果遇到多个满足装配条件的Bean,将会出现歧义性导致出错。我们如何避免这种情况的发生呢?可以通过以下几种方式实现:
- 使用
@primary
将某个Bean设为首选项(这个首选项只能有一个,多个首选就等于没有首选) - 使用限定注解
@Qualifier
,一般可以这么写@Qualifier(value)
,其中这个value
用于指定bean的名字,当然我们一般使用@Qualifier(自定义name)
在指定的类前自己声明限定名称,那么又有一个问题,如果出现多个相同的限定名称怎么办呢?而且这么写出来显得代码有点杂乱,我们能否统一管理这些限定注解呢?那我们可以自定义注解
(建议这么做) - 使用
@Resource
注解