@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. ...
随机推荐
- verilog中初值定义
在利用verilog进行开发时,往往需要对某些寄存器进行赋初值,下面根据笔者在设计中遇到的情况进行分析. 例如下面是实现流水灯(4个led),代码如下: module ledrun ( input ...
- 自己用原生JS写的轮播图,支持移动端触摸滑动,分页器圆点可以支持mouseover鼠标移入和click点击,高手看了勿喷哈
自己用原生JavaScript写的轮播图,分页器圆点按钮可支持click点击,也可支持mouseover鼠标悬浮触发,同时支持移动端触摸滑动,有兴趣的友友可以试试哈,菜鸟一枚,高手看了勿喷,请多多指正 ...
- FLEX拖动时复制图片
<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="ht ...
- 20155216 2016-2017-2《Java程序设计》课程总结
20155216 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业1:简要内容:我对师生关系的见解 预备作业2:简要内容:有关C语言学习调查以及学习 ...
- 20155323 2016-2017-2 《Java程序设计》第2周学习总结
20155323 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 对象:对象是类的一个实例,有状态和行为. 类:类是一个模板,它描述一类对象的行为和状态. 第 ...
- 20155334 2016-2017-2 《Java程序设计》第十周学习总结
20155334 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 1.计算机网络概述 (1)路由器和交换机组成了核心的计算机网络,计算机只是这个网络上的节点以 ...
- python 生成随机长度的字符串
import os def randomString(n): return (''.join(map(lambda xx:(hex(ord(xx))[2:]),os.urandom(n))))[0:1 ...
- 【MongoDB】NoSQL Manager for MongoDB 教程(进阶篇)
项目做完,有点时间,接着写下第二篇吧.回顾戳这里 基础篇:安装.连接mongodb.使用shell.增删改查.表复制 本文属于进阶篇,为什么叫进阶篇,仅仅是因为这些功能属于DB范畴,一般使用的不多, ...
- Linux环境配置备忘
1.Ubuntu服务器版本装scipy 预装版本可能fortran包版本过旧或者不全,安装scipy之前需要更新环境. sudo apt-get install gfortran libopenbla ...
- OAI搭建总结
我是参考网上的方法:oai搭建之eNB的文章, 接下来就根据自身所遇到的问题再这里总结一下步骤: 一.再官网上下载oai的文件openairinterface5g-master.zip 二.编译的过程 ...