autowired和resource注解的区别

@Autowired和@Resource注解的区别主要体现在以下五个方面:1.来源不同;2.注入方式不同;3.默认处理方式不同;4.属性名不同;5.兼容性不同。从整体上来看,这两个注解虽然都用于实现依赖注入,但是各自的侧重点和使用情况有所不同。

autowired和resource注解的区别

1.来源不同

@Autowired是Spring框架的注解,用于自动装配bean;而@Resource则是来自J2EE的注解,是JSR-250标准的一部分,用于资源的注入。

2.注入方式不同

@Autowired默认按类型装配(这个注解是属于spring的),默认情况下要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用名称装配可以结合@Qualifier注解进行使用;

而@Resource默认按照名称装配,如果没有指定name属性,当注解写在字段上时,默认取字段名作为bean名称寻找依赖对象,当注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时,会回退为原始类型装配。可以通过name属性进行指定。

3.默认处理方式不同

如果@Autowired找不到匹配的bean进行装配时,会抛出异常。而@Resource则默认是按照名称进行装配的,如果找不到名称匹配的bean则会回退为按类型装配。

4.属性名不同

@Autowired没有属性名,它按照类型来自动注入;而@Resource则有一个name属性,可以通过name属性来明确指定注入的bean。

5.兼容性不同

@Autowired只能应用到spring框架,而@Resource则由于是J2EE的一部分,因此兼容性更好,可以在所有支持JSR-250的环境下使用。


延伸阅读

@Autowired和@Resource是什么?

1.@Autowired是什么

@Autowired是Spring框架提供的注解,用于实现依赖注入。它可以用于字段、构造器、setter方法和配置方法上。

2.@Resource是什么

@Resource是J2EE提供的注解,是JSR-250标准的一部分,用于资源的注入。它可以用于字段和setter方法上,用于注入任何支持的资源类型的bean。

文章标题:autowired和resource注解的区别,发布者:飞飞,转载请注明出处:https://worktile.com/kb/p/52272

(3)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
飞飞的头像飞飞
上一篇 2023年5月18日 上午11:08
下一篇 2023年5月18日 上午11:11

相关推荐

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部