@Autowired与@Resource的区别

作者: Cocoonshu粽子 | 来源:发表于2017-03-09 09:41 被阅读152次
  1. @Autowired与@Resource都可以用来装配bean,都可以写在字段上,或写在setter方法上。
  2. @Autowired 属于Spring ;@Resource 属于JSR-250标准的注释,属于J2EE。
  3. @Autowired 默认按照类型装配,默认在Spring的上下文中必须有该对象存在并且唯一,否则会抛出BeanCreationException异常。如果允许 null 值,可以设置它的required 属性为false,例如:@Autowired(required=false);如果避免出现多个相同类型的bean,结合@Qualifier("");按照名称装配。
@Autowired() 
@Qualifier("userService")
private UserService userService;
  1. @Resource 默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
@Resource(name="userService")
private UserService userService;

相关文章

网友评论

    本文标题:@Autowired与@Resource的区别

    本文链接:https://www.haomeiwen.com/subject/yuqwgttx.html