@Autowired和@Resource的区别?
时间: 2023-10-08 17:06:05 浏览: 116
@Autowired和@Resource都是用于依赖注入的注解,它们的作用是相同的,都可以将一个依赖的bean自动注入到目标对象中。但是它们有一些细微的区别。
主要区别在于它们的注入方式和查找顺序。@Autowired是Spring框架的注解,按照byType的方式进行自动注入。它会先尝试按照类型进行匹配,如果找到多个匹配的bean,则会抛出异常。而@Resource是Java的注解,按照byName的方式进行自动注入。它会先尝试按照名称进行匹配,如果找不到匹配的名称,则会尝试按照类型进行匹配。
此外,@Autowired可以用于构造方法、字段和方法上,而@Resource只能用于字段和方法上。@Autowired注解是Spring特有的,更加灵活,可以与Qualifier注解一起使用,来指定具体要注入的bean。而@Resource是Java标准注解,不能与Qualifier注解一起使用。
综上所述,@Autowired和@Resource的区别在于注入方式、查找顺序和使用范围。根据具体的需求和场景,选择合适的注解来进行依赖注入。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [@Autowired注解与 @Resource注解的区别](https://blog.csdn.net/u010127245/article/details/51672819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理](https://download.csdn.net/download/weixin_38670297/12748778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [面试突击:@Autowired 和 @Resource 有什么区别?你学会了吗?](https://blog.csdn.net/Candyz7/article/details/126578224)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文