欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring @Qualifier 注解

程序员文章站 2022-05-24 14:38:36
...

@Qualifier注解的作用是区分实现相同Interface的class

举个栗子

//bean 生产者
@Component("man")
public class man implement Love {
    System.out.println("Hi girl i love you");
}
@Component("woman")
public class woman implement Love {
    System.out.println("Hi boy i love you");
}

//bean消费者
@Component("LoveService")
public class LoveService {
    @Autowired
    private Love love;
}

上面的这个代码,编译的时候就会报NoUniqueBeanDefinitionException异常,因为有两个Love的实现,不知道该注入哪个love。

解决这个问题,可以使用@Qualifier注解

//bean 生产者
@Component("man")
public class man implement Love {
    System.out.println("Hi girl i love you");
}
@Component("woman")
public class woman implement Love {
    System.out.println("Hi boy i love you");
}

//bean消费者
@Component("LoveService")
public class LoveService {
    @Autowired
    @Qualifier
    private Love love;
}

另外,bean生产者的@Component注解可以用@Qualifier注解代替,语义更清晰。