Spring 注解 @Qualifier 详细解析
1. 概述
今天带你了解一下 Spring 框架中的 @Qualifier
注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 @Primary
注解的不同之处。更多的技术解析请访问 felord.cn
2. 痛点
使用 @Autowired
注解是 Spring 依赖注入的绝好方法。但是有些场景下仅仅靠这个注解不足以让Spring知道到底要注入哪个 bean。默认情况下,@Autowired
按类型装配 Spring Bean。如果容器中有多个相同类型的 bean,则框架将抛出 NoUniqueBeanDefinitionException
, 以提示有多个满足条件的 bean 进行自动装配。程序无法正确做出判断使用哪一个,下面就是个鲜活的例子:
@Component("fooFormatter")
public class FooFormatter implements Formatter {
public String format() {
return "foo";
}
}
@Component("barFormatter")
public class BarFormatter implements Formatter {
public String format() {
return "bar";
}
}
@Component
public class FooService {
@Autowired
private Formatter formatter;
//todo
}
相关文章