关于@Qualifier和@Primary
之前用到@Autowired这个注解的时候,总是纳闷
@Component
public class B implements A;
@Component
public class C implements A;
@Autowired
private A a;
此时a调用方法是调用B的方法还是C的方法,实测如此启动会报错抛出了org.springframework.beans.factory.BeanCreationException,而原因是注入的时候发现有2个匹配的bean,(这个注解的首先是通过byType的方式注入Bean)
如果有此场景怎么办呢,如下:
@Autowired
private A b;
@Autowired
private A c;
@Autowired
@Qualifier(value = "c")
private A a;
@Autowired注解先用byType,而后是byName。
当然也可以在一个类上面加@Primary,意思是当犹豫不决是那种各类型的时候,就会选带了这个注解的