@resource和@autowired的区别

@Resource与@Autowired在接口仅有单一实现类时,注解的效果相同,可以相互替换。都是用于注入属性的修饰

不同点在于:
@Autowird属于spring框架,默认使用类型(byType)进行注入,默认情况下要求依赖对象必须存在(不存在会报错),可以通过required=false属性设置非必须——@Autowird(required=false)。也可以结合@Qualifier注解指定名称进行使用。

@Resource是JavaEE自带的注解,默认按照名称(byName)进行装配,可以通过name属性指定名称,如果没有指定name属性,当注解写在字段上时,默认取字段名进行查找注入。如果写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时再按照类型(byType)进行装配。但是需要注意的是,如果name属性一旦指定,就会按照名称进行装配。

原文参考:https://blog.csdn.net/zl18603543572/article/details/127111634

posted @ 2024-01-19 15:23  buhuo  阅读(62)  评论(0)    收藏  举报