美文网首页
Spring中IOC和DI的概念

Spring中IOC和DI的概念

作者: 叫我不矜持 | 来源:发表于2019-01-28 20:37 被阅读4次

    一.什么是Spring_IOC

    IOC(Inversion of Control)控制反转,控制反转不是一种新的技术而是一种设计思想,控制反转指的是创建对象的控制权反转了,以前是创建对象的主动权和创建时机是由自己把控的,该对象的依赖对象也需要手动去创建、注入,现在这个控制权交给了Spring容器,由Spring容器去管理,去创建对象,同时对象之间的依赖关系也没有了,他们都依赖于Spring容器,通过Spring容器去建立他们之间的关系;

    二.控制-反转 IOC

    控制:对象创建的控制权,控制权之前是交给程序员的,依赖对象的创建,注入,都是交给程序员处理

    反转:即由容器来帮忙创建及注入依赖对象,因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取方式被反转了。

    控制的什么被反转了?获得依赖对象的方式反转了

    三.依赖注入(Dependency Injection)  DI

    组件之间的依赖关系由容器在运行期间决定,即由容器动态的将某个依赖关系注入到组件中;

    依赖注入的目的不在于为软件系统提供更多的功能,它的主要目的在于提升组件重用的频度,并为软件搭建一个灵活,可扩展的平台,通过依赖注入,我们只需要简单的配置,不需要任何代码就可以指定目标的资源,完成自身的业务逻辑,不需要关心具体的资源来自何处有谁实现;

    谁依赖谁:当然是应用程序依赖于IoC容器;

    为什么需要依赖:因为应用程序需要IOC容器提供对象需要的外部资源

    谁注入了谁:很明显是IOC容器注入了应用程序的某个对象,它所依赖的对象

    注入了什么:注入了需要的外部资源(包括对象,常量数据,资源)

    图1-1 传统应用程序示意图 图1-2有IoC/DI容器后程序结构示意图

    相关文章

      网友评论

          本文标题:Spring中IOC和DI的概念

          本文链接:https://www.haomeiwen.com/subject/mkezjqtx.html