@Autowired的Bean匹配机制是指在执行依赖注入之前,Spring容器会根据被注入字段、方法参数的类型来查找匹配的 Bean。
该机制的执行顺序为:
1、先根据类型匹配
- 若没有匹配类型,则注入失败
- 有匹配类型,对应的实例有1个,则注入
2、如果匹配类型的实例有多个,则查看优先级注解:
- 查看是否有@Qualifier注解,有则按其指定规则匹配
- 查看是否有@Primary注解,有则按其指定规则匹配
3、如果类型匹配的实例有多个,且无法选出唯一的,则转为根据Bean的名称匹配
- 如果名称匹配成功就注入,反之注入失败