一 :提供方
@Autowired 由Spring提供
@Resource 由jdk提供
二 : 作用位置
public class Service {
//构造方法注入
@Autowired
public Service(Service service) {
this.service = service;
}
//成员变量注入
@Autowired
private Service service;
//方法参数注入
@Autowired
public void setService(Service service) {
this.service = service;
}
}
三 作用范围
@Autowired不同的是它可以适用于所有的Java框架,而@Autowired只适用于Spring。
@Autowired能够用在构造方法、成员变量、方法参数以及注解上,而@Resource能用在类、成员变量和方法参数上,这点从源码也能看得出来
四 默认装配方式
@Autowired默认按type自动装配,多个同类型bean可以结合@qualifier("zhangsan")而@Resource默认按name自动装配。当然,@Resource注解可以自定义选择,如果指定了name,则根据name自动装配,如果指定了type,则用type自动装配。