Spring IoC 的实现- xml 配置文件方式

78 阅读2分钟

Spring IoC 实现概述

知识回顾:

  • Spring IoC,是指把 bean 的创建和管理交给 Spring 来完成。
  • Spring 创建 bean 包括两个核心步骤:创建对象、注入依赖。

image.png

程序员要做的事情:

  • 定义类(包含类之间的依赖关系)
  • 告诉 Spring 要给哪些类创建 bean
  • 需要使用 bean 时,从 Spring IoC 容器中获取 bean

xml 配置文件的方式实现 IoC 的步骤

  • 用 xml 配置文件的方式实现 IoC,本质上就是用 xml 来告诉 Spring 要创建哪些 bean。
  • 第一步:引入 spring-context 依赖

image.png

不要选择 6.x 的版本,Spring6 不支持 JDK 8,选择 5.x 的版本。

  • 第二步:定义类

image.png

image.png

  • 第三步:配置 xml 文件

image.png

image.png

配置 idea 模板:Settings -> Editor -> File and Code Templates。便于之后创建 spring 配置文件

  • 第四步:从 Spring IoC 容器中获取 bean

image.png

set 注入

  • 使用 set 方法完成依赖注入。利用反射调用类的无参构造函数,再调用 set 方法完成依赖注入。

image.png

  • 属性为简单类型,使用 value
  • 属性为 bean,使用 ref
  • set 方法的名字很重要。set 方法名去掉 set 后,剩余字符串首字母小写 = bean property 的 name

构造方法注入

  • 也可以使用构造方法完成依赖注入。

image.png

  • 第一种方式:index,根据构造方法参数的顺序进行参数绑定

image.png

  • 第二种方式:name,根据构造方法参数的名字进行参数绑定

image.png

自动装配

  • 自动装配是针对 bean 类型的属性,可以不指定属性的 ref,通过自动装配的方式自动完成注入。
  • 第一种方式:byType,根据类型自动装配。
    • 如果只有一个 bean 的类型属于 property 的类型,那么自动完成装配。

image.png

  • 如果有不止一个 bean 的类型属于 property 的类型,那么无法根据类型自动装配,会报错。

image.png

  • 第二种方式:byName,根据名称自动装配。
    • 因为 bean 的 id 不允许重复,根据名称能找到 Spring IoC 容器中唯一的一个 bean,自动完成装配。
    • 这里名称是 set 方法去掉 set 后首字母小写。

image.png

  • 如果根据名称找到的 bean 类型不匹配,报错。

image.png

  • 去掉 set 方法后能否自动装配?

image.png

不能,自动装配不能去掉 set 方法。