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注解@Resource和@Autowired区别对比

你可能感兴趣的:(Spring,注解,Spring,概念)