@Autowired
按类型装配 Spring Bean。
当使用这个注入的时候某个Service实现类只需要写 @Service,这样就会自动找到某个Service这个类型以及他的子类型。但是当某个Service实现类有两个以上的时候,这就出现冲突,所以要用@AutoWire注入的时候要确保某个Service只有一个实现类。
@Qualifier
注解与我们想要使用的特定 Spring bean 的名称一起进行装配,Spring 框架就能从多个相同类型并满足装配要求的 bean 中找到对应名称。
@Service的名字和@Qualifier名字要对应
@Resource 默认情况下是按照名称进行匹配,如果没有找到相同名称的Bean,则会按照类型进行匹配,@Resource(”名字")这样写查询速度快
总结:
@Qualifier
与一起使用@Autowired
来阐明要实际连接的Bean
@Resource
也按名称匹配。因此,如果@Autowired
与一起使用@Qualifier
,则等同于@Resource
。
区别在于@Autowired
和@Qualifier
是spring注释,@Resource
而是标准java注释(来自JSR-250)。此外,@Resource
仅支持字段和setter注入,而 @Autowired
支持字段,setter,构造函数和多参数方法注入。