@RESOURCE与@autowire的区别
时间: 2023-10-06 14:11:28 浏览: 54
@RESOURCE和@Autowired都可以用来注入bean,但是有一些区别。
1. @RESOURCE是J2EE的注解,@Autowired是Spring的注解。
2. @RESOURCE默认按照名称进行匹配注入,如果找不到匹配的名称,则按照类型进行匹配。而@Autowired默认按照类型进行匹配注入,如果找不到匹配的类型,则按照名称进行匹配。
3. @RESOURCE可以注入任何类型的bean,而@Autowired只能注入Spring容器中的bean。
4. @RESOURCE的使用范围更广,可以注入J2EE API中的资源,比如JDBC DataSource、JMS ConnectionFactory等,而@Autowired只能注入Spring容器中的bean。
总的来说,@RESOURCE更加灵活,可以注入任何类型的bean或者J2EE API中的资源,而@Autowired更加方便,可以省略名称的匹配。
相关问题
@Resource与@Autowire使用演示
回答: @Resource和@Autowire都是用于实现自动装配功能的注解,但它们有一些细微的差异。@Resource注解默认按照组件名称进行装配,而不支持@Primary功能,也没有@Autowired(required = false)的功能。\[2\]而@Autowire注解可以实现自动装配,并且支持@Autowired(required = false)的功能。\[2\]此外,@Inject注解也可以实现和@Autowire相同的功能,但需要导入javax.inject的依赖包。\[2\]在使用这些注解时,需要详细了解每个注解的工作方式和工作范围。一般情况下,它们的使用方式相似,但在细节方面有差异。\[3\]从代码的严谨角度来看,不推荐在xml中配置default-autowire,因为这会导致所有的bean都被自动注入,无论是否需要。如果确实需要配置default-autowire,请再配置另一个属性default-autowire-candidates来限定范围。\[3\]
#### 引用[.reference_title]
- *1* *3* [Spring中@Autowired注解,@Resource注解和xml default-autowire区别](https://blog.csdn.net/maikelsong/article/details/80853855)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Spring注解驱动开发学习总结8:自动装配注解@Autowire、@Resource、@Inject](https://blog.csdn.net/xueping_wu/article/details/123832610)[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^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
@Resource跟@Autowire的区别
`@Resource` 和 `@Autowire` 都是用来进行依赖注入的注解。
`@Autowire` 注解是 Spring Framework 提供的注解,它用来告诉 Spring 容器在进行 bean 注入时,使用哪个 bean。
`@Resource` 注解是 Java 提供的注解,它用来告诉 J2EE 容器在进行资源注入时,使用哪个资源。
两个注解的功能基本相同,但是有一些细微的差别。
- `@Autowire` 默认按类型来匹配对应的 bean,如果类型匹配不到,则按名称来匹配。而 `@Resource` 默认按名称来匹配对应的资源。
- `@Autowire` 可以使用在字段和方法上,而 `@Resource` 仅可以使用在字段上。
- `@Autowire` 可以指定是否是必须的,当找不到匹配的 bean 时是否抛出异常,而 `@Resource` 没有这个配置。
总结:在 Spring 中使用 @Autowire 是更佳的选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)