Spring|Spring 中的 @Resource 和 @Autowired

总览 @Resource 和 @Autowired 都是做bean的注入时使用
@Resource 与 @Autowired 作用相当,只不过@Autowired按照byType自动注入。
@Resource 并不是Spring的注解,需要导入,但是Spring支持该注解的注入。
共同点
两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。
不同点
@Autowired 是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。

public class TestServiceImpl { @Autowired private User user; }

如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。
public class TestServiceImpl { @Autowired @Qualifier("user") private User user; }

@Resource
@Resource 默认按名称装配,如果不到与名称匹配的bean,会按类型装配。
未指定name属性, 默认使用成员属性的变量名,一般不用写name属性.
public class TestServiceImpl { @Resource(name="user") private User user; }

参考博文: 【Spring|Spring 中的 @Resource 和 @Autowired】Spring注解@Resource和@Autowired区别对比

    推荐阅读