Spring Framework中的控制和依赖注入反转是什么意思?

What does mean Inversion of Control and Dependency Injection in Spring Framework? and what is difference ? Why in the Spring framework?

在Spring框架中,控制反转和依赖注入意味着什么?有什么区别?为什么在Spring框架中?

有人能解释吗?

还建议一些初学者学习Spring框架的书?


我将写下我对这两个术语的简单理解:

1
For quick understanding just read examples*

依赖注入(DI):依赖注入通常意味着将依赖对象作为参数传递给方法,而不是让方法创建依赖对象。它在实践中的含义是,方法不直接依赖于特定的实现;任何满足需求的实现都可以作为参数传递。有了这个对象,就可以告诉他们依赖性。春天使它成为可能。这导致了松散耦合的应用程序开发。

1
Quick Example:EMPLOYEE OBJECT WHEN CREATED,IT WILL AUTOMATICALLY CREATE ADDRESS OBJECT (if address is defines as dependency by Employee object).

控制反转(IOC)容器:这是框架的共同特点,IOC管理Java对象——从实例到销毁它的BeaNe厂。由IOC容器实例化的Java组件称为Bean,IOC容器管理bean的范围、生命周期事件以及已配置和编码的任何AOP特征。

QUICK EXAMPLE:Inversion of Control is about getting freedom, more flexibility, and less dependency. When you are using a desktop computer, you are slaved (or say, controlled). You have to sit before a screen and look at it. Using keyboard to type and using mouse to navigate. And a bad written software can slave you even more. If you replaced your desktop with a laptop, then you somewhat inverted control. You can easily take it and move around. So now you can control where you are with your computer, instead of computer controlling it

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

作为设计指南的控制反转可用于以下目的:

某个任务的执行与实现是分离的。每个模块都可以专注于它的设计目的。模块对其他系统做什么不做任何假设,而是依赖于它们的契约。替换模块对其他模块没有副作用。我将在这里保持抽象的内容,您可以访问以下链接来详细了解主题。一个很好的例子

详细说明