跳至主要內容
Spring IoC 依赖来源

Spring IoC 依赖来源

依赖查找的来源

查找来源

来源 配置元数据
Spring BeanDefinition <bean id ="user" class="xxx.xxx.User">
@Bean public User user() {...}
BeanDefinitionBuilder
单例对象 API 实现

钝悟...大约 2 分钟Java框架SpringSpring核心Java框架SpringIOC依赖注入
Spring IoC

Spring IoC

IoC 简介

IoC 是什么

IoC控制反转(Inversion of Control,缩写为 IoC)。IoC 又称为依赖倒置原则(设计模式六大原则之一),它的要点在于:程序要依赖于抽象接口,不要依赖于具体实现。它的作用就是用于降低代码间的耦合度

IoC 的实现方式有两种:

  • 依赖注入(Dependency Injection,简称 DI):不通过 new() 的方式在类内部创建依赖类对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入)给类使用。
  • 依赖查找(Dependency Lookup):容器中的受控对象通过容器的 API 来查找自己所依赖的资源和协作对象。

钝悟...大约 24 分钟Java框架SpringSpring核心Java框架SpringIOC
Spring 依赖查找

Spring 依赖查找

依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准 API 实现

IoC 依赖查找大致可以分为以下几类:

  • 根据 Bean 名称查找
  • 根据 Bean 类型查找
  • 根据 Bean 名称 + 类型查找
  • 根据 Java 注解查找

此外,根据查找的 Bean 对象是单一或集合对象,是否需要延迟查找等特定常见,有相应不同的 API。

单一类型依赖查找

单一类型依赖查找接口- BeanFactory


钝悟...大约 3 分钟Java框架SpringSpring核心Java框架SpringIOC依赖查找
Spring 依赖注入

Spring 依赖注入

DI,是 Dependency Injection 的缩写,即依赖注入。依赖注入是 IoC 的最常见形式。依赖注入是手动或自动绑定的方式,无需依赖特定的容器或 API。

依赖注入 (Dependency Injection,简称 DI) 是一个过程,其中对象仅通过构造函数参数、工厂方法的参数或对象实例在构造或从工厂方法返回。然后容器在创建 bean 时注入这些依赖项。这个过程基本上是 bean 本身的逆过程(因此得名,控制反转),它通过使用类的直接构造或服务定位器模式自行控制其依赖项的实例化或位置。

使用 DI,代码更干净,当对象具有依赖关系时,解耦更有效。对象不查找其依赖项,也不知道依赖项的位置或类别。结果,您的类变得更容易测试,特别是当依赖关系在接口或抽象基类上时,它们允许在单元测试中使用存根或模拟实现。


钝悟...大约 10 分钟Java框架SpringSpring核心Java框架SpringIOC依赖注入