使用autowire来配置自动装载模式,对象无需自己查找或创建与其关联的其他对象,由容器负责把需要相互协作的对象引用赋予各个对象

1.在Spring框架xml配置中共有5种自动装配:

1.no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。
2.byName:通过bean的名称进行自动装配,如果一个bean的 property (性质)与另一bean 的name 相同,就进行自动装配。
3.byType:通过参数的数据类型进行自动装配。
4.constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。
5.autodetect:自动探测,如果有构造方法,通过 construct的方式自动装配,否则使用 byType的方式自动装配。

2.基于注解的自动装配方式:

使用@Autowired、@Resource注解来自动装配指定的bean;

在使用@Autowired注解之前需要在Spring配置文件进行配置。

在启动springIoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。

在使用@Autowired时,首先在容器中查询对应类型的bean:

如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据;

如果查询的结果不止一个,那么@Autowired会根据名称来查找;

如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。

@Autowired的注入规则:

1、@Autowired默认情况下按照类型在spring容器中查找对应的组件 :context.getBean(XXX.class);

@Autowired
private UserService userService;

此时,如果容器中只有一个userservice的bean,那么就会根据UserService.class进行注入

2.如果容器中存在多个userservice的bean对象,那么就会根据属性的名称作为组件的id在容器中查找context.getBean(“xxx”);

@Autowired
private UserService userService2;

此时就会根据userservice2进行查找bean

@Autowired可用于:构造函数、成员变量、Setter方法
注:@Autowired和@Resource之间的区别:
(1) @Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为false)。
(2) @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。

4.5---Spring框架之Spring的自动装配(复习版本)相关推荐

  1. java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...

    详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...

  2. 深入浅出,Spring 框架和 Spring Boot 的故事

    Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一.它目前由大量提供一系列服务的模块组成.包括模块容器,为构建横切关注点提供支持的面向切面编程(AOP),安全框架,数据存 ...

  3. Spring 框架(Spring Framework)使用详解

    概述 Spring 体系概述 Spring 是于2003年兴起的一个 full-stack 轻量级的 Java 开源框架,由 Rod Johnson 创建,使用 Spring 可以更快.更轻松.更安全 ...

  4. spring框架教程 Spring开发实例 spring mvc视频教程下载

    基于SpringMVC.MyBatis.FreeMarker架构实战CMS大型门户网站(自定义模板) spring框架教程 Spring开发实例 spring mvc视频教程下载地址: http:// ...

  5. 什么是spring框架?spring框架到底有什么用?spring框架到底做了些什么?

    什么是spring框架,spring框架究竟有什么用呢?我们可以用spring框架来做些什么呢?这是我今天要说的内容. 当然,百度spring框架会出现一大堆spring框架的介绍,以及IOC和AOP ...

  6. 什么是spring框架?spring框架的好处?

    spring框架是一个轻量级的DI/IOC和AOP容器的开源框架. 通俗来讲,spring好比一个罐子,罐子里可以装很多东西进去.在spring里面每个对象就是个bean(豆子),把豆子放到罐子里面, ...

  7. J2EE高级开发框架小课程之Spring框架1——Spring创建三种方式:使用无参构造器创建对象(bean标签的方式),使用静态方法创建对象,使用实例方法创建对象(非静态方法)

    Spring是什么? 是一个开源的.用于简化企业级应用开发的应用开发框架. a.简化开发: Spring框架对很多常用的api做了简化,比如,使用Spring jdbc (Spring jdbc是Sp ...

  8. JavaEE之Spring框架(Spring IOC)的使用

    六.Spring框架 6.1 Spring框架的概念 Spring 是众多开源java项目中的一员,基于分层的javaEE应用一站式轻量级开源框架,主要核心是 IOC(控制反转/依赖注入)与 AOP( ...

  9. 【Spring框架】Spring中的DI介绍

    Spring中的DI介绍 DI(Dependency Injection),即"依赖注入",组件之间依赖关系由容器在运行期决定,即容器动态的将某个依赖关系注入到组件当中.它是是 S ...

最新文章

  1. SharePoint使用BCS开发你第一个应用程序(三)
  2. 分治法求数组中的最大最小元素
  3. 解决安装python第三方模块 '-mno-cygwin'报错的问题
  4. getPerspectiveTransform函数
  5. Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略
  6. C语言中前面有四个空格,在C语言编程中什么叫前导空格,什么叫尾随空 – 手机爱问...
  7. 【神经网络与深度学习摘要】第1章 绪论
  8. 爬了7000+条内衣信息,只为探究妹纸们的偏好!
  9. 558. 四叉树交集
  10. aliddns ipv6_AliDDNS v2.0.0.1 - 阿里云DNS动态解析Windows客户端 支持IPv6 微信推送
  11. 技术篇(二)Demo示例——Bundle打包和加载
  12. QuickFlow-如何通过QFD and ExecuteCode获取其他列表数据
  13. Win11-GTX3060-配置Pytorch GPU
  14. NVIDIA显卡驱动
  15. ACCDB与MDB的读取区别
  16. 【Linux kernel】自旋锁和互斥锁
  17. 13个人中找出叛徒的问题(耶稣问题)经典做法
  18. 重庆邮电大学计算机专硕考研计网803历年真题简答题整理
  19. OpenSSL心脏滴血检测
  20. 宗海图cad_基于多软件的ArcGIS宗海图制图技术研究_李胜

热门文章

  1. C语言--打印正金字塔和倒金字塔
  2. 显卡利用率低可能的原因汇总
  3. 数据分类分级的概念、方法、标准及行业实践
  4. 深入理解 golang 的互斥锁
  5. Python简单使用正则表达式爬取古诗
  6. Java简易系统监视器system-monitoring系列:增加记忆功能
  7. 清华大学数学与计算机学院院长,清华“冰冰”,今日亮相!
  8. 冰冰学习笔记:Linux下的常用指令
  9. XR-FRAME 开始
  10. MATLAB算法实战应用案例精讲-【连接分析】PageRank(补充篇)(附Python代码实现)