40.@Autowired和@Resource之间的区别
发布时间:2023年12月18日
@Autowired和@Resource之间的区别
- @Autowired默认是按照类型byType装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为
false)。组件id的方式需要与@Qualifier(“name”)配合使用
- @Resource默认是按照名称byName来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。
- @Autowired 和 @Resource 来自不同的“父类”,其中 @Autowired 是 Spring 定义的注解,而 @Resource 是 Java 定义的注解,它来自于 JSR-250(Java 250 规范提案)。
- @Autowired只包含一个参数:required,标明是否开启自动注入,默认是true。而@Resource包含七个参数,最重要的两个参数是:name 和 type,用来指定注入的方式。
扩展
1、两者的相同点:
- 两者都是实现Bean的注入功能
- 两者都可以写在属性字段或者setter方法上。两者如果都写在属性字段上,setter方法可以省略掉。
2、@Autowired 查找顺序
- @Autowired 是先根据类型(byType)查找,如果存在多个 Bean 再根据名称(byName)进行查找,
文章来源:https://blog.csdn.net/weixin_43860634/article/details/135009619
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!