Spring中@Autowire与@Resource的区别?
时间: 2024-06-06 10:05:37 浏览: 15
`@Autowired` 和 `@Resource` 都可以用来进行依赖注入,但是它们的使用方式和具体实现上有一些区别。
`@Autowired` 是 Spring 框架提供的注解,它会根据类型进行自动装配,并从 Spring 容器中找到匹配类型的 Bean 进行注入。如果有多个 Bean 匹配该类型,可以使用 `@Qualifier` 指定具体的 Bean 名称。
`@Resource` 是 Java EE 5 引入的注解,它会根据名称进行自动装配,并从 Spring 容器中找到名称与成员变量名匹配的 Bean 进行注入。如果没有找到与名称匹配的 Bean,会尝试使用类型进行匹配。
因此,`@Autowired` 更加灵活,可以通过类型进行自动装配,也可以通过 `@Qualifier` 指定具体的 Bean 名称进行注入,而 `@Resource` 则更加严格,只能通过名称进行自动装配。另外,`@Autowired` 是 Spring 框架提供的注解,而 `@Resource` 则是 Java EE 5 引入的注解,因此在使用时需要注意不同的注解需要导入不同的包。
相关问题
@Resource跟@Autowire的区别
`@Resource` 和 `@Autowire` 都是用来进行依赖注入的注解。
`@Autowire` 注解是 Spring Framework 提供的注解,它用来告诉 Spring 容器在进行 bean 注入时,使用哪个 bean。
`@Resource` 注解是 Java 提供的注解,它用来告诉 J2EE 容器在进行资源注入时,使用哪个资源。
两个注解的功能基本相同,但是有一些细微的差别。
- `@Autowire` 默认按类型来匹配对应的 bean,如果类型匹配不到,则按名称来匹配。而 `@Resource` 默认按名称来匹配对应的资源。
- `@Autowire` 可以使用在字段和方法上,而 `@Resource` 仅可以使用在字段上。
- `@Autowire` 可以指定是否是必须的,当找不到匹配的 bean 时是否抛出异常,而 `@Resource` 没有这个配置。
总结:在 Spring 中使用 @Autowire 是更佳的选择。
@RESOURCE与@autowire的区别
@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更加方便,可以省略名称的匹配。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)