spring:自定义限定符注解@interface, 首选bean

Posted 穆晟铭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring:自定义限定符注解@interface, 首选bean相关的知识,希望对你有一定的参考价值。

spring:自定义限定符注解@interface, 首选bean

1.首选bean

在声明bean的时候,通过将其中一个可选的bean设置为首选(primary)bean能够避免自动装配时的歧义性。当遇到歧义性的时候,Spring将会使用首选的bean,而不是其他可选的bean。实际上,你所声明就是“最喜欢”的bean。

假如有一个接口类:

public interface Dessert{}....

其中有3个类都集成了它
@Component
public class Cake implements Dessert{}

 

@Component
public class IceCream implements Dessert{}

 

@Component

public class cookies implements Dessert{}

因为3个类都使用了@Component注解,在组件扫描一下代码时,发现bean并不是唯一的,是带有歧义的bean,并报错,代码如下:

@Autowired

public void setDessert(Dessert dessert){

this.dessert = dessert

}

这是需要在其中的一个bean上设置为首选(primary),代码如下:
@Component

@Primary

public class IceCream implements Dessert{}

 

 

 

2限定符注解@Qualifier

3自定义限制符注解@interface

 





以上是关于spring:自定义限定符注解@interface, 首选bean的主要内容,如果未能解决你的问题,请参考以下文章

Spring高级注解

spring框架校验自定义注解

自定义注解

限定符注解

Spring自定义注解

Spring自定义标签