1.在进⾏类注⼊时,除了可以使⽤ @Autowired 关键字之外,我们还可以使⽤ @Resource 进⾏注⼊,如下代码所示:
运行结果:
@Autowired 和 @Resource 的区别
- 出身不同:@Autowired 来⾃于 Spring,⽽ @Resource 来⾃于 JDK 的注解;
- 使⽤时设置的参数不同:相⽐于 @Autowired 来说,@Resource ⽀持更多的参数设置,例如 name设置,根据名称获取 Bean。
- @Autowired可用于Setter注入,构造函数注入,而@Resource只能用于Setter注入和属性注入,不能用于构造函数注入
举个例子说明@Autowired 和 @Resource 的区别
运行结果:
使用@Autowired就报错了
下面使用@Resource
运行结果:
2.同⼀类型多个 @Bean 报错
解决同⼀个类型,多个 bean 的解决⽅案有以下两个:
- 使⽤ @Resource(name="user1") 定义。
- 使⽤ @Qualifier 注解定义名称。
第一种使用@Resource(name="user1")、
第二种使用@Qualifier