@Resource和@Autowired的区别

(1)来源不同:@Autowired是Spring定义的注解,而@Resource是java定义的注解。
(2)依赖的查找顺序不同:依赖注入的功能,是通过在springIOC容器(单例池)中查找对象,再将对象引入到当前类中,而查找又分为两种实现:按名称查找(byName)查找和按类型(byType)查找:
@autowired是先按照类型查找,如果存在多个bean再根据名称(byName)进行查找。
@Resource是先按照name查找,如果查询不到,再按照type查找。
(3)支持的参数不同
@Autowired只支持设置一个required的参数,而@Resource支持七个参数。
(4)依赖注入方式不同
@Autowired支持:属性注入、构造方法注入和setter注入。
@Resource支持:属性注入和setter注入。

(5)编译器错误提示不同
使用idea在编写依赖注入的代码时,如果是注入的是mapper对象,那么使用@Autowired编译器会提示报错信息。如果使用@Resource则不会。

你可能感兴趣的:(java)