@Autowired和@R
时间: 2023-10-04 19:13:59 浏览: 108
1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf
esource的区别是什么?它们的用法如何?
回答: @Autowired和@Resource都是用于实现依赖注入的注解,但它们有一些区别。@Autowired是Spring提供的注解,而@Resource是J2EE提供的注解。\[1\]@Autowired默认按照byType方式进行bean匹配,即根据依赖对象的类型来匹配bean,而@Resource默认按照byName方式进行bean匹配,即根据依赖对象的名称来匹配bean。\[1\]在使用@Autowired时,如果要使用byName方式进行匹配,需要配合@Qualifier注解一起使用。而在使用@Resource时,可以通过指定name属性来使用byName方式进行匹配,也可以通过指定type属性来使用byType方式进行匹配。\[1\]另外,@Autowired可以用在构造器、方法、参数、成员变量和注解上,而@Resource只能用在类、成员变量和方法上。\[1\]\[2\]此外,@Autowired默认要求依赖对象必须存在,如果允许为null,则可以设置@Autowired(required=false)。而@Resource不允许找不到bean的情况。\[1\]\[2\]在使用@Autowired时,如果有多个实现类,可以通过@Qualifier注解指定要注入的具体实现类。而在使用@Resource时,可以通过指定type属性或name属性来指定要注入的具体实现类。\[2\]总结来说,@Autowired和@Resource的区别主要在于匹配方式、允许为null的情况和用法上的差异。
#### 引用[.reference_title]
- *1* [注解@Autowired和@Resouce的区别](https://blog.csdn.net/m0_57640408/article/details/123692409)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Java之@Autowired和@Resouce浅析](https://blog.csdn.net/leijie0322/article/details/123791618)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文