[笔记]Spring-Day1 — IOC&DI

学什么

简化开发: Spring框架中提供了两个大的核心技术

  • IOC

  • AOP

核心概念

IOC & IOC容器 & Bean

  • IOC(Inversion of Control)控制反转

  • 不自己new对象,交给容器new -- 解耦

  • IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象

  • 被创建或被管理的对象在IOC容器中统称为Bean

DI

  • (Dependency Injection)依赖注入

  • 建立容器中对象与对象之间的绑定关系

  • service运行需要依赖dao对象

案例

解耦BookDao

  1. pom.xml添加依赖

  2. 添加案例中需要的类

  3. 添加spring配置文件applicationContext.xml

  4. 获取IOC容器、从容器中获取对象进行方法调用

  5. 运行程序测试

解耦BookService

  1. 去除BookServiceImpl中的new,为属性提供setter方法

  2. 修改配置完成注入

  3. 运行程序

关于bean

bean的基础配置

配置别名 name

配置范围(是否为单例) scode

bean的实例化

构造方法实例化 — 无参构造方法

在BookDaoImpl类中添加一个无参构造函数,并打印一句话,方便观察结果

静态工厂实例化 — 了解即可

实例工厂化 — 额额不太懂

  1. 准备一个Dao和DaoImpl类

  2. 创建一个工厂类OrderDaoFactory并提供一个普通方法

  • 创建一个UserDaoFactoryBean的类,实现FactoryBean接口,重写接口的方法

  1. 配置文件添加

  2. 编写AppForInstanceUser运行类,在类中通过工厂获取对象

bean的生命周期

bean对象从创建到销毁的整体过程

  • 初始化容器

    • 1.创建对象(内存分配)

    • 2.执行构造方法

    • 3.执行属性注入(set操作)

    • 4.执行bean初始化方法

  • 使用bean

    • 执行业务操作

  • 关闭/销毁容器

    • 执行bean销毁方法

  • 代码实现

    • 1.init&destory

    • 2.close —执行destroy方法的内容

    • 3.注册钩子关闭容器 — 执行destroy方法的内容

DI

相关内容

setter注入

  • 简单类型

  • 引用类型

构造器注入

  • 简单类型

  • 引用类型

自动配置

  • 不用写配置文件了

  • 类型

按类型(常用)

按名称 — 有多个相同类型的对象

按构造方法

集合注入

数组类型数据

注入List类型数据

注入Set类型数据

注入Map类型数据

注入Properties类型数据

最后更新于