你的位置:首页 > Java教程

[Java教程]谈谈对Spring IOC的理解(转)


学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。

一、分享Iteye的开涛对Ioc的精彩讲解

  首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/1413846

1.1、IoC是什么

  Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下:

  ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。

  ●为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。

  用图例说明一下,传统程序设计如图2-1,都是主动去创建相关对象然后再组合起来:

图1-1 传统应用程序示意图

  当有了IoC/DI的容器后,在客户端类中不再主动去创建这些对象了,如图2-2所示:

韩国旅游攻略去韩国旅游要多少钱韩国旅游报价韩国旅游团报价韩国旅游费用深圳野生动物园有住的地方吗?深圳海洋天地住一晚多少钱? 如果你在天津拥有爱情 就该这么玩 去大梅沙住哪里好? 深圳野生动物园开车有多远?深圳海洋天地开车怎么走? 澳门好玩吗?澳门有什么好玩的地方? 小编教你香港旅游如何快速过通道 国庆去北京旅游度假吧 国庆节去缅甸旅游 欣赏美景品尝美食 首届在外温商子女“寻根之旅”即将开启 旅游签合同“六大陷阱”需注意 呼和浩特—韩国清州往返国际航线10日将开通 3年内河北3A级以上景区将实现WIFI全覆盖 来泰国皮皮岛,感受不一样的旅游 冬季旅游好去处_冬天去哪里旅游比较好 当旅游遭遇地震时,我们应该办? 韩国料理 醉心于色香融合的味道 TLRME16CP(F) Datasheet TLRME16CP(F) Datasheet TLRME16CP(T) Datasheet TLRME16CP(T) Datasheet TLRME16T Datasheet TLRME16T Datasheet 昆明大理丽江 昆明大理丽江 昆明大理丽江 签证材料 签证材料 签证材料 桂林旅游线路 桂林旅游线路 桂林旅游线路