Spring依赖注入(IOC)

时间:2020-02-23 14:35:41  来源:igfitidea点击:

依赖注入的基本概念(也称为控制模式的反转)是我们不创建对象,而是描述应如何创建它们。
我们不会在代码中直接将组件和服务连接在一起,但描述了配置文件中的组件所需的服务。
一个容器(在Spring 框架的情况下,IOC容器)然后负责将其挂钩。

即,应用IOC,对对象的依赖性由一些外部实体赋予创建时间,该外部实体协调系统中的每个对象。
也就是说,将依赖项注入对象。
因此,IOC意味着对对象如何获得对协作对象的引用的责任反转。

例子:

让我们有两个程序和发动机。
汽车有一个发动机的对象。

正常方式:

有很多方法可以实例化一个对象。
一种简单常见的方式是新的运营商。

因此,这里的Car类包含引擎的对象,我们将其实例化使用新的运营商。

借助依赖注入:

现在我们外包实例化并提供实例化到第三方的工作。
汽车需要发动机的对象运作,但它向某些第三方提供工作。
指定的第三方,决定实例化的时刻和用于创建实例的类型。
由第三方注入了Class Car和Class引擎之间的依赖关系。
整个本协议也涉及一些配置信息。
整个过程称为依赖注入。

整个依赖注入如何工作,我们将在进一步的帖子中看到它。

Spring依赖注入的好处:

  • 确保配置和使用的使用是单独的。
  • 只需更改配置即可切换实现。
  • 通过可以注入模拟依赖性,可以增强可测试性。
  • 可以容易地识别依赖关系。
  • 无需读取代码以查看代码对话的依赖关系。

依赖注入的类型:

  • Setter Injection:在调用No-Argument构造函数或者No-Argument静态工厂方法以实例化Bean后,通过调用Bean上的Setter方法来实现Setter的DI。
  • 构造函数注射:通过调用具有多个参数的构造函数来实现基于构造函数的DI,每个参数表示协作者。
  • Inteface注射:在基于接口的依赖注入中,我们将有一个接口和实现它,我们将获得注入的实例。