基于CSS3的3D立方体旋转动画

简单总结 Spring的IOC

简单总结Spring的IOC

1.1、IOC是什么

IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。

理解-控制反转:

控制--- 我们以往的编程中如果需要一个对象往往需要去手动去new一个出来。而spring帮我们解决了这个问题,在spring中IOC是有专门一个容器来创建这些对象,所以对象的创建被IOC容器控制了(进一步深入可以理解为控制了外部资源获取。外部资源获取不只是对象,还包括文件等)。

反转--- 以前是由我们自己在对象中主动去直接获取依赖对象,而现在是由容器来帮忙查找及注入依赖对象,对象只是被动的接受依赖对象,所以依赖对象的获取被IOC容器反转了

通过图例,观察传统程序设计与spring框架的区别

img

1.2、IOC能做什么

  • IOC 作为一种设计思想,一个重要的面向对象编程的法则,它能指导我们如何设计出优秀的低耦合程序。
  • 传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试。
  • 有了IOC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是 松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。
  • 所以IoC对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。应用程序原本是主动获取资源,但是在IOC/DI思想中,应用程序就变成被动的了,被动的等待IOC容器来创建并注入它所需要的资源了。

 

1.3、IOC和DI

DI—Dependency Injection,即“依赖注入”:依赖注入(DI)是一个过程,在此过程中,对象仅通过构造函数参数、工厂方法的参数或在从工厂方法中构造或返回对象实例后在对象实例上设置的属性来定义它们的依赖项(即与其一起工作的其他对象)。然后,容器在创建bean时注入这些依赖项。DI有两个方式:基于构造函数的依赖注入 和 基于setter的依赖注入。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

理解-依赖注入:

依赖:bean对象的创建依赖于IOC容器,需要IOC容器来提供对象需要的外部资源

注入:bean对象中的所有属性,由容器来注入注入某个对象所需要的外部资源(包括对象、资源、常量数据)。

自我小总结:

IOC和DI由什么关系呢?自我感觉这二者其实是同一个概念,可能是控制反转概念比较含糊,所以在2004年大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”,相对IOC 而言,依赖注入明确描述了 "被注入对象依赖IoC容器配置依赖对象"。

posted @ 2021-02-10 01:05  只会写error  阅读(112)  评论(0)    收藏  举报