Java面试Day07-@Resource和@Autowired的区别

2023-12-24 06:24:24

@Autowired 和 @Resource 都是 Spring生态中,用来进行依赖注入的注解。

它们直接有以下区别:

1.来源不同:

@Autowired 和 @Resource 来自不同的父类,其中 @Autowired 是 Spring 定义的注解,而 @Resource 是 Java 定义的注解,它来自于 JSR-250。这些注解是在 Java EE 5 规范中引入的,用于简化和标准化开发企业级应用程序的依赖注入和生命周期管理。

2.依赖查找的顺序不同:

依赖注入的功能,是通过先在 Spring IoC 容器中查找对象,再将对象注入引入到当前类中。而查找有分为两种实现:按名称(byName)查找或按类型(byType)查找,其中 @Autowired 和 @Resource 都是既使用了名称查找又使用了类型查找,但二者进行查找的顺序却截然相反。

@Autowired:

@Resource

3.依赖注入的支持不同:

@Autowired 和 @Resource 支持依赖注入的用法不同,常见依赖注入有以下 3 种实现: 1. 属性注入 2. 构造方法注入 3. Setter 注入

其中,@Autowired 支持属性注入、构造方法注入和 Setter 注入,而 @Resource 只支持属性注入和 Setter 注入。

海的那边是敌人。

文章来源:https://blog.csdn.net/weixin_64753607/article/details/135162845
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。