1.来源不同
两者来自不同的父类,@Autowired注解时spring定义的注解,而@Resource是Java定义的注解
2.依赖查找顺序不同
依赖注入的功能,是先通过在Spring IOC容器中查找对象,再将对象注入引入到当前类中,而查找分为两种实现:按名称或者按类型查找。
@Autowired查找顺序:先根据类型(byType)查找,如果存在多个(Bean)再根据名称(byName)进行查找。
@Resource查找顺序:先根据名称(byName)查找,如果(根据名称)查找不到,再根据类型(byType)进行查找。
3.支持的参数不同
@Autowried注解只支持一个required参数。
@Resource注解支持多个参数,比如:name,type,lookup等
4.依赖注入的支持不同
@Autowired支持成员变量注入,setter注入,构造方法注入,而@Resource只支持成员变量跟Setter注入。