@Autowired和@Resource有哪些区别?
一、@Autowired和@Resource 的区别
1、来源不同
@Autowired 和 @Resource 来自不同的“父类”,其中 @Autowired 是 Spring 定义的注解,而 @Resource 是 Java 定义的注解,它来自于 JSR-250。
2、依赖查找顺序不同
依赖注入的功能,是通过先在 Spring IoC 容器中查找对象,再将对象注入引入到当前类中。而查找有分为两种实现:按名称(byName)查找或按类型(byType)查找,其中 @Autowired 和 @Resource 都是既使用了名称查找又使用了类型查找,但二者进行查找的顺序却截然相反。
@Autowired 是先根据类型(byType)查找,如果存在多个 Bean 再根据名称(byName)进行查找,@Resource 是先根据名称查找,如果(根据名称)查找不到,再根据类型进行查找。
3、支持的参数不同
@Autowired 和 @Resource 在使用时都可以设置参数,但二者支持的参数以及参数的个数完全不同,其中 @Autowired 只支持设置一个 required 的参数,而 @Resource 支持 7 个参数。
4、依赖注入的支持不同
@Autowired 支持属性注入、构造方法注入和 Setter 注入,而 @Resource 只支持属性注入和 Setter 注入。
延伸阅读:
二、什么是 @Autowired
@Autowired是Spring中的一个注释,这个注释的功能就是为我们注入一个定义好的 bean。
这个注释是属于 Spring 的容器配置的一个注释,与它同属容器配置的注释还有:@Required,@Primary, @Qualifier 等等。因此 @Autowired 注释是一个用于容器 ( container ) 配置的注释。
autowire,这个单词的意思是自动装配的意思。在 Spring 的世界当中,自动装配指的就是使用将 Spring 容器中的 bean 自动的和我们需要这个 bean 的类组装在一起。
@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。@Autowired 默认是按照类去匹配,配合 @Qualifier 指定按照名称去装配 bean。
以上就是关于@Autowired和@Resource的区别的内容了,希望对大家有帮助。
相关推荐HOT
更多>>数据屏蔽有哪些一般规则?
一、数据屏蔽的一般规则数据屏蔽技术需要遵循一些规则,以便转换后的数据仍然有用。1、数据屏蔽必须是不可逆的一旦数据屏蔽技术转换了真实数据...详情>>
2023-10-11 06:00:16基础设施即代码 (IaC) 有哪些优势?
一、基础设施即代码 (IaC)的优势借助自动化流程,IaC 协助企业以多种方式管理其 IT 基础设施需求。以下是部署 IaC 的部分优势:1、提高一致性Ia...详情>>
2023-10-11 03:45:03什么是数据联合?
一、什么是数据联合数据联合是允许多个数据库作为一个数据库运行的软件过程。该虚拟数据库从各种来源获取数据,并将它们全部转换为通用模型。这...详情>>
2023-10-11 00:48:14人才管理领域的主要趋势有哪些?
一、人才管理领域的主要趋势有哪些如今,人们的工作和生活越来越融为一体,企业也在转变其运营模式。各种趋势正在重塑人才管理战略,助力员工取...详情>>
2023-10-10 23:15:27