什么是Spring框架中的依赖注入和控制反转?

12 浏览
0 Comments

什么是Spring框架中的依赖注入和控制反转?

“依赖注入”和“控制反转”常常作为使用Spring框架开发Web框架的主要优势被提及。

能否有人简单地解释一下这是什么,如果可能的话,附带一个例子?

admin 更改状态以发布 2023年5月22日
0
0 Comments

我将写下我的简单理解这两个术语:(为了快速理解,只需阅读示例)

  • 依赖注入(DI):
    依赖注入通常意味着将依赖对象作为参数传递给方法,而不是让方法创建依赖对象
    在实践中,这意味着该方法不直接依赖于特定的实现;满足要求的任何实现都可以作为参数传递。

    使用此对象实现定义其依赖关系。Spring将其提供。
    这导致开发松散耦合的应用程序。

    快速示例:创建EMPLOYEE OBJECT时,它将自动创建ADDRESS OBJECT(如果地址被Employee对象定义为依赖项)*。

  • 控制反转(IoC)容器:
    这是框架的常见特征,IoC管理Java对象
    - 从实例化到销毁通过其BeanFactory。
    - IoC容器实例化的Java组件称为bean,并管理bean的范围、生命周期事件和它被配置和编码的任何AOP特性。

    控制反转是关于获得自由、更灵活和更少依赖的原则。当您使用桌面计算机时,您是被奴役的(或者说是被控制的)。您必须坐在屏幕前并观看它。使用键盘键入和使用鼠标导航。一款糟糕的软件可以让您更加受制。如果用笔记本电脑替换桌面电脑,则可以反转某些控制。您可以轻松地拿起它并四处移动。因此,您现在可以控制使用计算机的位置,而不是计算机控制使用它

    通过实现控制反转,软件/对象消费者获得了对软件/对象的更多控制/选项,而不是被控制或拥有更少的选项。

    控制反转作为设计准则具有以下目的:
    - 执行某个任务与实现相分离。
    - 每个模块可以专注于其设计的内容。
    - 模块不做出关于其他系统的假设,而依赖于它们的契约。
    - 替换模块对其他模块没有副作用。

我会在这里保持抽象,您可以访问以下链接以详细了解该主题。

带有实例的好文章

详细说明

0
0 Comments
  • Spring通过依赖注入有助于创建松耦合的应用程序。
  • 在Spring中,对象定义它们的关联(依赖项),并不关心如何获取这些依赖项。Spring是提供创建对象所需依赖项的责任。

例如:假设我们有一个名为Employee的对象,它依赖于对象Address。我们会定义一个对应于Employee的bean,该bean将定义其对对象Address的依赖。

当Spring尝试创建Employee对象时,它会看到Employee依赖于Address,因此它将首先创建Address对象(依赖对象),然后将其注入到Employee对象中。

  • 控制反转(IoC)和依赖注入(DI)可互换使用。IoC通过DI实现。DI是提供依赖项的过程,IoC是DI的结果。(注意: DI并不是实现IoC的唯一方法。还有其他方式。)

  • 通过DI,创建对象的责任从我们的应用程序代码转移到Spring容器;这种现象被称为IoC。

  • 可以通过setter注入或构造函数注入进行依赖注入。
0