@Autowired和@Resource区别

`@Autowired`和`@Resource`都是Spring框架提供的依赖注入注解,用于自动装配Bean。它们有一些相似之处,但也有一些区别。

1. **来源**:
   - `@Autowired`是Spring框架自带的注解。
   - `@Resource`是JSR-250(Java规范请求)定义的注解,属于Java EE规范的一部分。

2. **自动装配方式**:
   - `@Autowired`默认按照类型(byType)进行自动装配。如果需要按照名称(byName)进行装配,可以结合`@Qualifier`注解使用。
   - `@Resource`默认按照名称(byName)进行自动装配。如果需要按照类型(byType)进行装配,可以设置`name`属性为空字符串。

3. **属性**:
   - `@Autowired`可以设置`required`属性,默认为`true`,表示如果找不到匹配的Bean,会抛出异常。如果设置为`false`,则不会抛出异常,而是注入`null`。
   - `@Resource`可以设置`name`属性,指定要注入的Bean的名称。也可以设置`type`属性,指定要注入的Bean的类型。

4. **示例**:
   ```java
   @Service
   public class UserService {
       @Autowired
       private UserDao userDao;

       @Resource(name = "userDao")
       private UserDao userDao2;
   }
   ```

总结:
- `@Autowired`和`@Resource`都可以用于自动装配Bean,但它们的默认装配方式和属性设置有所不同。
- 在实际开发中,可以根据具体需求和项目规范选择使用哪个注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值