@Resource 注解的作用【和 @Autowired 的对比】
今天看到一段代码使用的是 @Resource 的注解,的确是第一次看到这个注解,百度一查才知道,原来和 @Autowired 效果一样,但也有一定的区别。
两个注解都可以用来注入 bean ,@Resource 是 JavaEE 的注解,@Autowired是Spring的注解,他俩都可以写在属性名上, setter方法上,@Autowired 还可以写在普通方法上,构造器上,而且两者注入的依据有点不同 :
1 . @Autowired 默认是按照类型进行装配的,而且默认要求被注入的 bean 必须存在,如果允许不存在的话,必须加上 required = false 的属性,(如果被类型匹配上的 Bean 有多个,会报异常,解决方案可以使用 @Primary 注解 , 或者指定 Bean 的名字)如:
@Autowired(required=false)
private UserDao userDaoImpl;如果想要根据 bean 的 name 来进行装配,则需要指定 @Qualifier(“bean名字”),如:
@Autowired
@Qualifier("userDaoImpl")
private UserDao userDaoImpl;但是如果需要使用 @Autowired 和 @Qualifier 两个注解来注入 Bean , 还不如使用下面的 @Resurce 呢 .
2 . @Resource 默认是按照名字进行装配的,不指定 bean 名字时会自动根据属性名进行注入,当找不到默认的名字的bean时就会根据类型去注入;但是如果指定了 name 属性,则按照指定的 bean 的 name进行注入,不会再根据类型去注入了,如:
//默认按属性名注入
@Resource
private UserDao userDaoImpl; //按照指定的 bean的 name注入
@Resource(name="userDaoImpl")
private UserDao userDaoImpl
后来我又看到了一个用于注入 Bean 的注解 , @Inject , 它是 JSR-330 提供的注解 , 这个注解在 Struts2 中使用的比较多 , 使用方法和 @Autowired 差不多 , 也是按照类型进行注入的 .
1
@Resource 注解的作用【和 @Autowired 的对比】的更多相关文章
- Spring 与 @Resource注解
Spring 中支持@Autowired注解,能够实现bean的注入.同时,Spring 也支持@Resource注解,它和@Autowired类似,都是实现bean的注入.该注解存在javax.an ...
- Spring注解@Resource和@Autowired区别对比
转载:http://www.cnblogs.com/think-in-java/p/5474740.html @Resource和@Autowired都是做bean的注入时使用,其实@Resource ...
- 注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Sprin ...
- Spring注解@Resource和@Autowired区别对比、spring扫描的默认bean的Id、程序获取spring容器对象
-------------------------注解扫面的bean的ID问题-------------------------- 0.前提需要明白注解扫描出来的bean的id默认是类名首字母小写,当 ...
- @Resource或者@Autowired作用/Spring中@Autowired注解、@Resource注解的区别
@Resource或者@Autowired作用不用写set get就能注入,当然,前提是你已经开启了注解功能. spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定 ...
- 【转载】Spring注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Sprin ...
- Spring5:@Autowired注解、@Resource注解和@Service注解
什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分 ...
- Spring中@Autowired注解、@Resource注解的区别
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource.@PostConstruct以及@PreDestroy. @Resour ...
- 转:Spring中@Autowired注解、@Resource注解的区别
Pay attention: When using these annotations, the object itself has to be created by Spring context. ...
随机推荐
- Shrio第二天——认证、授权与其它特性
一.认证——Authentication (即登陆),简单分析之前的HelloWorld的认证: 1. 获取当前的 Subject. 调用 SecurityUtils.getSubject(); 2. ...
- 20155217 2016-2017-2 《Java程序设计》第2周学习总结
20155217 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 Java中的基本类型主要可分为整数.字节.浮点数.字符与布尔. 整数可分为short整数(占 ...
- WPF 带刻度的滑动条实现
原文:WPF 带刻度的滑动条实现 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83507170 ...
- Mybaits: MyBaits的xml文件中大于号和小于号的转义
< 小于号 < > 大于号 & & 和 & ' 单引号 ' " 双引号 "
- 快读板子fread
struct ios { inline char read(){ <<|; static char buf[IN_LEN],*s,*t; ,IN_LEN,stdin)),s==t?-:*s ...
- linux 命令缩写
su super user apt advanced packaging tool ifconfig interface configuration so shared object fsp frac ...
- Python小白学习之函数装饰器
装饰器 2018-10-25 13:49:37 装饰器从字面意思就是用来装饰的,在函数可以理解为:在函数中,我们不想影响原来的函数功能,又想给函数添加新的功能,这时候我们就用到了装饰器. 一般函数操作 ...
- 04-容器 What, Why, How
What - 什么是容器? 容器是一种轻量级.可移植.自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行.开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机 ...
- linux命令提示符设置
变成绿色 [root@localhost /usr/local]#vim /root/.bashrc # .bashrc # User specific aliases and functions a ...
- Towards Accurate Multi-person Pose Estimation in the Wild 论文阅读
论文概况 论文名:Towards Accurate Multi-person Pose Estimation in the Wild 作者(第一作者)及单位:George Papandreou, 谷歌 ...