码迷,mamicode.com
首页 > 编程语言 > 详细

Spring IOC容器

时间:2015-07-28 16:03:59      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:系统架构   spring   

概念:


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,也不需要实现一些特殊接口。而一个合理的设计做好尽量避免侵入性。减少了代码中的耦合,将耦合延迟到了配置文件中,发生了变化也更容易控制。






版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring IOC容器

标签:系统架构   spring   

原文地址:http://blog.csdn.net/qiumuxia0921/article/details/47105409

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!