spring - 什么是 Spring Framework 中的依赖注入(inject)和控制反转?

标签 spring dependencies controls code-injection inversion

“依赖注入(inject)”和“控制反转”经常被称为使用 Spring 框架开发 Web 框架的主要优势

如果可能的话,谁能用一个非常简单的术语来解释它是什么?

最佳答案

  • 由于 依赖注入(inject),Spring 有助于创建松散耦合的应用程序。
  • 在 Spring 中,对象定义了它们的关联(依赖),而不用担心它们将如何获得这些依赖。 Spring 负责为创建对象提供所需的依赖项。

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

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

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

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

  • 依赖注入(inject)可以通过setter注入(inject)或构造函数注入(inject)来完成。

关于spring - 什么是 Spring Framework 中的依赖注入(inject)和控制反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403155/

相关文章:

Spring本地化消息持久化

maven - maven构建模块时如何构建依赖项目

wpf - 有没有办法对属性的属性使用样式 setter ?

javascript - jquery 的问题

controls - 使用分布式版本控制系统进行发布管理

java - Firebird 查询崩溃并出现 org.firebirdsql.jdbc.FBSQLException : GDS Exception. 335544364。请求同步错误

spring - Spring Data REST 中带有验证错误的空消息

ajax - 为什么 <c :forEach> not working with Ajax request in JSP Spring?

android-studio - 运行flutter blue插件时出现错误: package androidx. core.app不存在

java - maven:如何为本地安装的依赖指定 "systemPath"?