zoukankan      html  css  js  c++  java
  • Spring IOC容器

    概念:


    IOC(Inversion of Control)控制反转,本来是有应用程序管理的对象之间的依赖关系。如今交给了容器管理。这就叫控制反转,即交给了IOC容器,Spring的IOC容器主要使用DI方式实现的,不须要主动产找,对象的查找、定位和创建所有由容器管理。


    理解:


    通俗一点讲就是“不创建对象”。曾经我们要调用一个对象的方法。首先要new一个对象。可是用IOC容器,在对象中不直接与对象连接,而是在配置文件里描写叙述要使用哪一个对象,容器负责将这些联系在一起。、


    实现原理:


    IOC容器的对象实例化是通过配置文件来实现的,术语上叫做注入。


    实现的效果:


    我们如今整个的平台是第一版,写的最简单的3层实现的效果是这种:



    我之后的几个框架图都会省略Model的。这个我们学到的经典三层的时候的代码。


    第二版:



    这是我们学到的加上了设计模式的第二版的系统架构图,事实上也是由经典三层实现的,仅仅只是是加上了Face(外观设计模式),在D层加上了抽象工厂、反射、配置文件,来实现对父类的引用指向子类的对象的。


    第三版:



    第三版是将外观层用WCF来取代。实现了远程调用,在B层也加上了抽象工厂的方式。B层将不再直接调用D层。而是在D层的前面加上了DbSession。DbSession有两个作用:第一。实现了事物。之后能够实现分布式事物。第二。拿到了D层的全部接口(拿到D层的全部接口,我们就能够实现随意管理D层)。事实上说白了Dbsession就是线程,当这个系统跑起来的时候。就开了一个进程,用户每次发出一个http的请求,就会new出一个DbSession,就是new出一个线程。


    第三版能够说是经典三层发挥的淋漓了,可是大家能够看到,工厂能帮我们解除各个层之间的耦合。可是也带来了不方便的地方就是工厂太多,我们怎么将工厂去掉。就用到了IOC容器。


    第四版:



    这个是如今增加了IOC容器的框架图。IOC容器的对象实例化是通过配置文件来实现的。


    总结:


    通过IOC控制反转,大量降低了Factory和Singleton的数量,使代码曾是更加清晰。Spring的IOC容器是一个轻量级的容器,没有侵入性,不须要依赖容器的API。也不须要实现一些特殊接口。而一个合理的设计做好尽量避免侵入性。降低了代码中的耦合,将耦合延迟到了配置文件里。发生了变化也更easy控制。






  • 相关阅读:
    一维,二维差分 (P3397 地毯)
    P3406 海底高铁
    P2004 领地选择
    priority_queue 大顶堆与小顶堆的用法 & 常见数据结构时间复杂度
    AcWing 电影
    P2678 跳石头
    HDU2041超级楼梯
    HDU2087剪花布条
    n条线分平面问题解决方法总结
    HDU2034 人见人爱A-B(C++)
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7131525.html
Copyright © 2011-2022 走看看