@Autowired 和 @Resource 的区别和联系【总结】
@Autowired? 和 @Resource 的区别和联系【总结】
?
@Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false[e.g:? @Autowired(required=false)]。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:?
? @Autowired @Qualifier("personDaoBean")?
? private PersonDao personDao;?
?
?
?
@Resource注解和@Autowired一样,也可以标注在字段或属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。?
? @Resource(name=“personDaoBean”)?
? private PersonDao personDao;//用于字段上?
可以依据名字注入
也可以依据类型注入
默认按 byName自动注入