@autowired和@resource优劣
时间: 2023-11-11 09:53:40 浏览: 40
这两个注解都可以用来进行依赖注入,但是有一些不同之处:
1. @Autowired是Spring框架提供的注解,而@Resource是JSR-250规范中定义的注解,因此@Autowired只能在Spring应用中使用,而@Resource可以在任何Java应用中使用。
2. @Autowired默认按照类型进行注入,如果有多个同类型的bean,则需要使用@Qualifier指定具体的bean。而@Resource默认按照名称进行注入,如果名称不存在,则会抛出异常。
3. @Autowired可以注入任何bean,包括自定义的bean和框架自带的bean,而@Resource只能注入自定义的bean。
综上所述,@Autowired更加灵活,但需要注意多个同类型bean时需要使用@Qualifier指定,而@Resource更加规范,但只能注入自定义的bean。
相关问题
@Autowired 和 @Resource
@Autowired和@Resource都是Spring框架中用来进行依赖注入的注解,它们的作用类似,但也有一些区别。
@Autowired是Spring提供的注解,它默认按照类型进行自动装配。如果有多个同类型的Bean,则需要通过@Qualifier注解指定具体的Bean名称。例如:
```java
@Autowired
@Qualifier("userService")
private UserService userService;
```
@Resource是J2EE的注解,它默认按照名称进行自动装配。如果没有指定name属性,则会将属性名作为Bean名称进行查找。例如:
```java
@Resource(name = "userService")
private UserService userService;
```
此外,@Resource还可以指定类型进行自动装配。例如:
```java
@Resource(type = UserService.class)
private UserService userService;
```
另外,@Resource还有一个重要的特性,它可以注入非Spring容器管理的对象。如果指定的name属性在Spring容器中找不到Bean,则会尝试从JNDI(Java Naming and Directory Interface)中查找对应的对象进行注入。
总的来说,@Autowired和@Resource都可以用来进行依赖注入,@Autowired更为常用,但@Resource也有其特殊的用途。
@autowired和@resource区别
@autowired和@Resource都是用于注入依赖对象的注解。它们的作用非常相似,但是存在以下几点区别:
1. 注入方式不同:@Autowired是根据类型进行自动装配,如果有多个同类型的bean,则根据变量名称进行匹配;而@Resource默认按名称进行装配,如果找不到对应名称的bean,则尝试按类型进行装配。
2. 依赖来源不同:@Autowired是Spring框架提供的注解,而@Resource是JavaEE标准的注解,可以在其他容器中使用,如Tomcat。
3. @Autowired需要添加额外的注解才能完成注入:当有多个同类型的bean时,@Autowired需要结合@Qualifier或者@Primary注解来指定具体的bean进行注入;而@Resource可以直接指定名称或者类型进行注入。
总之,@Autowired和@Resource都可以完成依赖注入的功能,具体使用哪个注解主要取决于具体的使用场景和个人习惯。
相关推荐
![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_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)