@Resource和@Autowired的区别
时间: 2023-06-26 15:07:21 浏览: 188
20 面试官,请不要再问我@Resource和@Autowire注解的区别了慕课专栏(1)1
@Resource和@Autowired都是用于注入Bean对象的注解,它们的区别如下:
1. 来源不同:@Resource是JDK提供的注解,而@Autowired是Spring提供的注解。
2. 自动装配方式不同:@Resource默认按照名称进行装配,如果找不到与名称匹配的Bean,则按照类型进行装配;@Autowired默认按照类型进行装配,如果找到多个类型匹配的Bean,则再按照名称进行匹配。
3. 适用范围不同:@Resource可以注入任意类型的Bean对象,包括基本类型和String类型;@Autowired只能注入Bean类型的对象。
4. 注入方式不同:@Resource通过setter或字段直接注入Bean对象;@Autowired通过构造器、setter或字段注入Bean对象。
5. 是否需要指定依赖注入Bean的名称不同:@Resource需要指定名称;@Autowired不需要指定名称。
综上所述,两者的本质是一样的,都是为了实现Bean对象的依赖注入。使用时可以根据实际情况选择合适的注解。
阅读全文