@Autowired 和 @Resource 区别

@Autowired和@Resource都是用于依赖注入,但实现方式不同,@Autowired基于类型匹配,@Resource基于名称优先,其次类型匹配。@Autowired的required参数关注是否必须注入,@Resource的name参数用于指定bean名称。前者常用于Spring,后者适用于JavaEE应用。

@Autowired 和 @Resource 都是 Spring 常用的用来进行依赖注入的注解,二者都可以自动注入 bean,但在一些细节方面存在区别。

  1. 实现方式不同

@Autowired 是 Spring 的注解,而 @Resource 是 Java EE 的注解,前者只能在 Spring 容器中使用,后者则可在 Java EE 应用中使用。

  1. 针对属性类型不同

使用 @Autowired 注解时,Spring 会根据类型(byType)自动装配被注入的 bean 实例,如果有多个相同类型的 bean,可以通过 @Qualifier 指定需要注入的 bean 名称。

使用 @Resource 注解时,先根据名称 (byName) 进行注入,若名称不存在,则根据类型 (byType) 进行注入。

  1. 参数类型不同

@Autowired 注解的参数是 required,表示该属性是否必须被注入,如果设置为 true,则必须注入成功,否则将抛出异常。

@Resource 注解的参数是 name,表示需要注入的 bean 名称,默认值为 “”,如果没有指定名称,则自动使用属性名称作为 bean 名称进行注入,如果找不到对应名称的 bean,则抛出异常。

总的来说,Autowired 是一种更加强大、灵活的注入方式,在使用上较为简单方便,常常用于在 Spring 应用中进行 bean 依赖注入;而 Resource 是一种更加标准化的注入方式,在使用时需要注意一些细节,常常用于在 Java EE 应用中进行 bean 依赖注入。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值