参考:


核心概念

IOC

问题:

  • 代码耦合度偏高

解决:

  • 使用对象是,在程序中不主动使用new对象,转换为由外部提供对象。

这样的解决思想就叫做 IOC

IOC控制反转:

  • 对象的创建控制权转移到“外部”,这种思想称为控制反转

DI

问题:

  • service需要依赖dao

解决:

  • 在容器中建立bean与bean之间的依赖关系

这样的解决思想就叫做 DI

DI依赖注入:

  • 依赖关系的过程称为依赖注入

IOC容器

  • spring实现了这个控制反转的思想称为 IOC容器

  • IOC容器=“外部”

  • 管理对象创建和初始化的一些列工作。

Bean

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


IOC案例

  • 管理什么?
    • service和dao
  • 如何将被管理对象告诉IOC容器?
    • 配置
  • 如何获取IOC容器?
    • 接口
  • 如何获取bean?
    • 接口方法
  • 在哪导入坐标?
    • pom.xml

过程

  • 1.导入坐标
  • 2.配置bean
    • bean标签表示配置
    • id属性表示命名
    • class属性表示定义bean的类型
  • 3.获取IOC容器
  • 4.获取bean

DI案例

  • 基于ICO管理Bean
  • service中使用new形式创建dao对象是否保留?
  • dao对象如何进入到service?
    • 提供方法
  • servic和dao的关系如何描述?
    • 配置

过程

  • 1.删除new方式创建的dao对象
  • 2.提供对应set方法
  • 3.配置service与dao的关系
    • propery表示配置当前bean的属性
    • name属性表示配置具体的哪一个属性
    • ref属性表示参照哪一个bean

深入IOC

IOC的理论背景

bean的基础配置