Spring 注解 @Resource和@Autowired
@Resource和@Autowired两者都是做bean的注入使用。
其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入。但是Spring支持该注解的注入。
共同点:两者都可以写在字段和setter方法上。两者如果都写在字段上,就不需要写写setter方法。
不同点如下:
先来说一说@Autowired
@Autowired为Spring提供的注解,
需导入Package:org.springframework.beans.factory.annotation.Autowired;
只按照byType 注入。
@Autowired
private UserDao userDao;//用于字段上
@Autowired
public void setUserDao(UserDao userDao) {//用于属性的setter方法上this.userDao= userDao;
}
@Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("userDao")
private PersonDao personDao;
再说说@Resource
@Resource默认按 byName 自动注入,由J2EE提供。
需导入Package: javax.annotation.Resource
@Resource有两个中重要的属性:name和type ,而Spring将@Resource注解的name属性解析为bean的
名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用
type属性时则使用 byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resource(name=“userDao”)
private UserDao userDao;//用于字段上
@Resource(name=“userDao”)
public void setUserDao(UserDao userDao) {//用于属性的setter方法上this.userDao= userDao;
}
注:最好是将@Resource放在setter方法上。
@Resource装配顺序
(1). 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常;
(2). 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常;
(3). 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常;
(4). 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入。
本文转载自:http://blog.csdn.net/angus_17/article/details/7543478
Spring 注解 @Resource和@Autowired相关推荐
- Spring 注解 @Resource和@Autowired(转)
鸣谢:http://my.oschina.net/u/216467/blog/205951 @Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spri ...
- Spring注解@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Sprin ...
- Spring中@Resource与@Autowired、@Qualifier的用法与区别
Spring中@Resource与@Autowired.@Qualifier的用法与区别 1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法 ...
- spring:注解@Resource,实现引用类型的赋值
注解@Resource, 根据byName赋值,找不到. 就会根据byType再找一次,赋值 @Resource和@Autowired的区别: @Autowired来自spring框架, 而 @Res ...
- @autowired注解注入为null_Java面试必备:依赖注入注解@Resource和@Autowired
1. 前言 @Resource和@Autowired注解都可以在Spring Framework应用中进行声明式的依赖注入.而且面试中经常涉及到这两个注解的知识点.今天我们来总结一下它们. 2. @R ...
- 一文总结Spring 注解及作用详解
文章目录 开启注解扫描配置 @RequestMapping 声明bean的注解 注入bean的注解 spring配置文件中读取properties配置文件 j配置类相关注解 切面(AOP)相关注解 @ ...
- Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法
一.Spring定义bean,@Component.@Repository.@Service 和 @Controller Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥 ...
- 【Spring注解系列13】Spring自动装配总结:@Autowired、@Resource、@Qualifier、@Inject
目录 1.@Autowired.@Resource.@Qualifier.@Inject 1).@Autowired 2).@Resource与@Inject 3). @Autowired参数取值 2 ...
- spring 注解说明以及@Resource和@Autowired的区别
2019独角兽企业重金招聘Python工程师标准>>> 一.spring常见的注解有 @Component.@Repository.@Service.@Controller @Aut ...
最新文章
- Spring Boot Web 开发相关总结
- 引用和指针的差别,数组和指针的差别
- Python如何引用豆瓣api镜像地址
- 全志A33-串口SLIP的使用
- 2020互联网岳麓峰会“软件再出发论坛”成功举办
- select * from data where 姓名_SQL基础where
- 微软MSDN订阅用户已可提前手工下载Windows 10安装包
- 真实网络环境下使用易邮搭建网络邮件服务器并测试通过
- TP框架 URL规则重写 Apache配置
- 如何查看wifi信息并对其进行管理?这些app帮你一键掌控你的wifi信息
- Transaction 那点事儿
- Windows上帝模式——隐私浏览必备
- HBuilder软件下载及安装教程
- Cartographe纯雷达计算位姿的前后端总结
- Java实现微信支付之Native模式
- 微信小程序app.ts全局变量出现报错?
- 如何设计网络服务器?
- vue中图片引入问题以及实现openlayers地图标记
- Java字节流读取shp_SHN系列语音卡调试文档.doc
- 【白话机器学习系列】白话Broadcasting
热门文章
- 机器人J中WPR_北方工业大学服务机器人研究项目介绍
- 100g流量在电脑上可以用多久_三大运营商5G体验方案出炉!100G一个月够不够?...
- 利用python制作漂亮的词云图_利用python制作漂亮的词云图
- Java中如何引用文档对象模型_在JAVA中使用文档对象模型DOM经验小结
- java 限制参数类型_java定义受限制的类型参数操作
- Unity Fine Prued Tiled Light (FPTL)
- redis学习(四)
- Redis在windows下安装过程(转载)
- 树链剖分+线段树 单点修改 区间求和 模板
- appium--每次启动会重新安装的问题(没试过)