首页 > 其他 > 详细

@Resource 注解的作用【和@AutoWired的对比】

时间:2017-07-11 13:52:20      阅读:248      评论:0      收藏:0      [点我收藏+]

今天看到一段代码使用的是 @Resource 的注解,的确是第一次看到这个注解,百度一查才知道,原来和 @AutoWired效果一样,但也有一定的区别。

      两个注解都可以用来注入 bean ,@Resource 是JavaEE的注解,@AutoWired是Spring的注解,他俩写的地方是一样的,要么属性名上,要么 setter方法上,但是注入的依据有点不同 :

1 . @AutoWired 默认是按照类型进行装配的,而且要求被注入的 bean 必须存在,如果允许不存在的话,必须加上 required = false 的属性,如:

@AutoWired(required=false)
private UserDao userDaoImpl;

如果想要根据 bean 的 name 来进行装配,则需要指定 @Qualifier(“bean名字”),如:

@AutoWired
@Qualifier("userDaoImpl")
private UserDao userDaoImpl;

2 . @Resource 默认是按照名字进行装配的,不指定 bean 名字时会自动根据属性名进行注入,当找不到默认的名字的bean时就会根据类型去注入;但是如果指定了 name 属性,则按照指定的 bean 的 name进行注入,不会再根据类型去注入了,如:

//默认按属性名注入
@Resource
private UserDao userDaoImpl;


//按照指定的 bean的 name注入
@Resource(name="userDaoImpl")
private UserDao userDaoImpl;

@Resource 注解的作用【和@AutoWired的对比】

原文:http://www.cnblogs.com/daimajun/p/7150075.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!