@Resource 和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是 javax.annotation.Resource需要导入,但是Spring支持该注解的注入。
相同点:两者都可以写在字段和setter方法上。如果两者都写在字段上,那么就不需要再写setter方法。
不同点:
-
@Autowired 为 Spring 提供的注解,
@Resource并不是Spring的注解,需要导入包 -
@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许 null 值,可以设置它的required 属性为 false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier 注解一起使用。如下:
public class TestServiceImpl {
@Autowired
@Qualifier(