zoukankan      html  css  js  c++  java
  • SpringIOC

    本篇原址:http://jinnianshilongnian.iteye.com/blog/1413846

    个人只是将其精简,以便自己理解概念


     IOC-Inversion of Control,控制反转。这是一种设计思想。在Java开发中,IOC思想意味着将开发者设计好的对象交给容器管理,而不是在对象内存直接控制。

    理解IOC,可以从几个点出发去思考:

      1、谁控制谁

      2、控制什么

      3、什么是正转和反转

      4、哪些方面反转了


     1、谁控制谁:

      在传统的Java SE程序设计中,我们直接在对象内部通过new关键字进行对象创建。程序主动创建依赖对象。而IOC是一个专门的容器用来控制对象的创建。这里是IOC容器控制了对象

    2、控制什么:

      IOC控制对象的创建代替程序主动创建依赖对象,IOC主要控制了外部资源的获取(不只是对象)。

    3、什么是正转和反转:

      正转即在传统开发时,开发者在对象中主动控制去直接获取依赖对象。

      如图:

        

      反转则是由容器来帮忙创建及注入依赖对象。为何叫这种方式为反转呢?因为容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象。

      如图:

        


    IOC的功能:

      通过IOC思想,实现了主从换位的变化。传统开发应用程序时主,获取资源是主动获取。但IOC中,应用程序变成被动的,被动的等待IOC容器来创建并注入它所需要的资源。


     IOC和DI:

      DI-Dependency Injection,依赖注入。组件之间依赖关系由容器在运行期决定。即由容器动态的将某个依赖关系注入到组件中。依赖注入是为了提升组件重用的频率,并为系统搭建一个灵活可扩展的平台。通过依赖注入机制,开发者只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

      关于DI,开发者理解时也可以从下面几个点来思考:

      1、谁依赖谁

      2、为什么需要依赖

      3、谁注入谁

      4、注入了什么


     1、谁依赖谁:

      应用程序依赖于IOC容器

    2、为什么需要依赖:

      应用程序需要IOC容器来提供对象需要的外部资源

    3、谁注入谁:

      IOC容器注入应用程序某个对象,应用程序依赖的对象

    4、注入了什么:

      注入某个对象所需要的外部资源(包括对象、资源、常量数据)


     IOC与DI是同一个概念不同角度的描述。依赖注入明确描述了被注入对象依赖IOC容器配置依赖对象。

  • 相关阅读:
    Liberty Mutual Property Inspection, Winner's Interview: Qingchen Wang
    均方根值(RMS)+ 均方根误差(RMSE)+标准差(Standard Deviation)
    Comparing Differently Trained Models
    Stochastic Optimization Techniques
    Here’s just a fraction of what you can do with linear algebra
    14种机器学习常见算法分类汇总
    高速充电技术介绍
    javacc学习总结
    组合查询(机房重构知识点总结)
    Linux下vi编辑器的使用
  • 原文地址:https://www.cnblogs.com/zhangbLearn/p/9974480.html
Copyright © 2011-2022 走看看