Spring可以基于注解方式配置并注入依赖。在Java代码中使用@Resource或者@Autowired注解方式注入。
1。 @Resource:
1)默认按照名称装配注入,只有当找不到与名称name匹配的bean时才会按照类型Type注入。
2)@Resource注解由J2EE提供,包名是javax.annotation.Resource,需要导包,但是Spring支持该注解的注入。
3)@Resource可以书写标注在字段或者该字段的setter方法上面,
4)@Resource装配的顺序:
1》如果同时指定name和type,则从spring上下文中找到唯一匹配的bean进行装配,找不到就抛出异常。
2》如果指定name,则从上下文中查找名称id匹配的bean进行装配,找不到则抛出异常。
3》如果指定type,则从上下文中找到类似匹配的唯一bean进行装配,唯一意味着一,不能多或没有,否则都会抛出异常。
4》如果没有type也没有name,则自动按照byName进行装配;如果没有匹配就回退原始类型匹配,如果匹配就自动装配。

举例:
1)UserServiceImpl.java

public class UserServiceImpl {// 下面两种@Resource只要使用一种即可@Resource(name="userDao")private UserDao userDao; // 用于字段上@Resource(name="userDao")public void setUserDao(UserDao userDao) { // 用于属性的setter方法上this.userDao = userDao;}
}

2。@Autowired
1)默认是按照类型Type装配注入的,如果需要按照名称装配注入,需要结合@Qualifier一起使用,
2)@Autowired可以书写标注在字段或者该字段的setter方法上面,
3)@Autowired是由spring提供,需要导入包org.springframework.beans.factory.annotation.Autowired,故减少系统对spring的依赖建议使用,

举例:
1)UserServiceImpl.java

public class UserServiceImpl {// 下面两种@Autowired只要使用一种即可@Autowiredprivate UserDao userDao; // 用于字段上@Autowiredpublic void setUserDao(UserDao userDao) { // 用于属性的方法上this.userDao = userDao;}
}

3。@Qualifier:
可与Autowired一起使用,如果@Autowired需要按照名称装配。
举例:

public class UserServiceImpl {
//联合使用
**@Autowired
@Qualifier("userDao")**
private UserDao userDao;

}

Spring中@Autowired和@Resource区别相关推荐

  1. Spring中@Autowired和@Resource的区别

    一.定义 @Autowired 对类成员变量.方法及构造函数进行标注,完成自动装配的工作. @Resource 在语义上被定义为通过其唯一的名称来标识特定的目标组件,其中声明的类型与匹配过程无关. 如 ...

  2. Spring中@Autowired、@Qualifier、@Resource的区别

    转自: Spring中@Autowired.@Qualifier.@Resource的区别_老周聊架构的博客-CSDN博客_qualifier和resource区别1.@Autowired@Autow ...

  3. Spring中default-autowire与autowire区别

    学习笔记:Spring中default-autowire与autowire区别 default-autowire与autowire主要用于Spring的IOC的注解注入,明白两者的区别和用法将使你的开 ...

  4. @Autowired和@Resource区别

    @Autowired和@Resource区别 1.提供方不同 ​ @Autowired 是Spring提供的,@Resource 是J2EE提供的. 2.装配时默认类型不同 ​ @Autowired只 ...

  5. 4.Autowired和Resource区别

    目录:面试题收集_懒起来的博客-CSDN博客 Autowired和Resource区别 @Autowired 默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要 ...

  6. Java 中 @Autowired与@Resource的区别

    1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上.  2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下 ...

  7. Spring的@Autowired和@Resource

    @Autowired 当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去. 必须确保该类型在IOC容器中只有一个对象: ...

  8. Spring中ApplicationContext和beanfactory区别

    BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是一种典型的BeanFactory.原始的BeanFactory无法支持spring的许多插件,如AOP ...

  9. Java面试--autowired和resource区别

    面试题:autowired和resource有什么区别(百度面试题) autowired和resource有什么区别 @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会 ...

最新文章

  1. 洛谷P1352 没有上司的舞会题解
  2. UA MATH523A 实分析1 集合论基础2 序关系与Zorn引理
  3. 第三部分:Android 应用程序接口指南---第二节:UI---第六章 对话框
  4. spark 广播变量大数据_Spark基础知识(三)--- Spark的广播变量和累加器
  5. Linux并发与竞争介绍(原子操作、自旋锁、信号量、互斥体)
  6. Surface Pro电磁笔故障
  7. zookeeper的会话
  8. 拓端tecdat|Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
  9. thinkphp5 数据库 链接 Connection
  10. 骑士资本高频交易系统事故案例分析
  11. uni-app 商城源码
  12. pmp中项目经理如何进行目标设定
  13. python ocr 识别发票_在Python中使用Tesseract进行OCR识别
  14. 支付宝SOFA架构:降低业务系统复杂度
  15. Grasshopper 二次开发 (C#) Part 1 - Introductions to the C# Coding in Grasshopper
  16. 修复0xc0000034的经历
  17. java pdf与ofd文件相互转换
  18. QQ与TIM的不同之处
  19. java还原混淆代码,android混淆 android如何将混淆代码还原?
  20. 使用NODEJS+REDIS开发一个消息队列以及定时任务处理

热门文章

  1. 皮一皮:中国好男友?
  2. 2021年3月程序员工资统计数据出炉,又拖后腿了……
  3. 每日一皮:据说最近流行凡尔赛文学...
  4. 干掉Navicat:正版 MySQL 官方客户端真香!
  5. 抵御故障引发系统性失控的基本原则:混沌工程
  6. Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL
  7. Java 异常处理的 9 个最佳实践 1
  8. mysql-sql优化--笔记
  9. 步态识别 GaitSet
  10. C++调用Python Py_Initialize失败