一、写本博文的原因
年初刚加入到现在的项目时,在使用注解时我用的@Resource。后来,同事:你怎么使用@Resource注解?我:使用它有错吗?同事:没错,但是现在都使用@Autowired。我:我研究一下。
在大学,学习J2EE实训时一直使用的是@Resource注解,后来我就养成习惯了。现在对这两个注解做一下解释:
- @Resource默认按照名称方式进行bean匹配,@Autowired默认按照类型方式进行bean匹配
- @Resource(import javax.annotation.Resource;)是J2EE的注解,@Autowired( import org.springframework.beans.factory.annotation.Autowired;)是Spring的注解
Spring属于第三方的,J2EE是Java自己的东西。使用@Resource可以减少代码和Spring之间的耦合。
二、@Resource注入
现在有一个接口Human和两个实现类ManImpl、WomanIm
本文主要探讨了在Spring项目中,@Resource和@Autowired注解的区别。@Resource默认按名称匹配bean,而@Autowired按类型匹配。当存在多个相同类型的bean时,未指定名称会导致错误。通过示例展示了如何在存在多个实现类时,使用@Resource(name=...)或@Autowired+@Qualifier(name=...)来指定具体bean。
订阅专栏 解锁全文
6845

被折叠的 条评论
为什么被折叠?



