这篇文章主要为大家介绍了深入分析@Resource和@Autowired注解区别,有需要的朋友可以借鉴参考下,希望能够有所帮助
引言
@Resource和@Autowired都是Spring Framework中用于依赖注入的注解,但它们有几点不同:
来源不同:@Resource注解来自于J2EE规范中;而@Autowired注解是Spring框架提供的。
搜索策略不同:@Resource注解默认按照名称进行匹配查找,如果找不到,则按照类型进行匹配。而@Autowired注解默认是按照类型进行匹配,如果出现多个类型一致的实例对象,则需要指定名称。
属性不同:@Resource注解没有属性名称,只有一个name属性,表示要注入的Bean名称。而@Autowired注解有两个重要属性:required和name,其中required属性表示是否必须注入该属性,默认为true;name属性表示要注入的Bean名称。
1、用法层面分析
首先,我们创建一个接口UserService
和两个实现类UserServiceImpl1
和UserServiceImpl2
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|