IoC(控制反转)

英文名称:(Inversion of Control)

  • IoC 是什么?
    • IoC 完成的事情原先由程序员主动通过 new 实例化对象事情,转交给 Spring 负责.
    • 控制反转中控制指的是:控制类的对象.
    • 控制反转中反转指的是转交给 Spring 负责.
  • IoC 最大的作用:解耦.
    • 程序员不需要管理对象.解除了对象管理和程序员之间的耦合.

Spring 环境搭建

  • 导入 jar 四个核心包一个日志包(commons-logging)

  • 在 src 下新建 applicationContext.xml(文件名称和路径自定义)

  • 记住 Spring 容器 ApplicationContext,applicationContext.xml 配置的信息最终存储到了 AppliationContext 容器中

  • spring 配置文件是基于 schema

    • schema 文件扩展名.xsd
    • 把 schema 理解成 DTD 的升级版.比 DTD 具备更好的扩展性.
    • 每次引入一个 xsd 文件是一个 namespace(xmlns)
  • 配置文件中只需要引入基本 schema

    • 通过<-bean/> 创建对象.
    • 默认配置文件被加载时创建对象.

Spring通过构造方法创建对象

  • 无参构造创建:默认情况.

    • 配置文件通过<-bean/> 创建对象.
    • getBean(“标签id值”,返回值类型);如果没有第二个参数,默认是 Object
  • 有参构造创建:需要明确配置

    • 需要在类中提供有参构造方法

    • 在 applicationContext.xml 中设置调用哪个构造方法创建对象

    • 如果设定的条件匹配多个构造方法执行最后的构造方法(构造器在前面声明时,在最后面声明调用第一个)

    • index: 参数的索引,从 0 开始

    • name: 参数名

    • type:类型(区分开关键字和封装类 int 和 Integer)

    • 按条件匹配多个构造器时

Spring通过实例工厂创建对象

  • 工厂设计模式:帮助创建类对象.一个工厂可以生产多个对象.

  • 实例工厂:需要先创建工厂,才能生产对象

  • 实现步骤:

    • 必须要有一个实例工厂

    • 在 applicationContext.xml 中配置工厂对象和需要创建的对象

Spring通过实例工厂创建对象

不需要创建工厂,快速创建对象.

  • 实现步骤

    • 编写一个静态工厂(在方法上添加 static)

    • 配置文件,配置工厂对象