@Autowired与 @Resource区别

为什么程序在IDEA中会报错咧?

其实这个程序是可以编译并运行通过的,即:是可以Spring是可以通过该注解创建bean的,如果换成是@Resource,则不会报错了。

此处便引出了问题:@Autowired与 @Resource区别

  1. @Autowired是Spring的注解,@Resource是J2EE的注解,导入注解的时候这两个注解的包名不一样
  2. @Autowired默认按照byType方式进行bean匹配
    @Resource默认按照byName方式进行bean匹配,找不到再按type去匹配。

共同点: @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。

总结:

  1.  @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用。
  2.  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章