列宿乃施于上荣兮 日月才经于柍桭

………… 白驹过隙 岁月如斯 梦萦回绕 心灵之声
posts - 57, comments - 8, trackbacks - 0, articles - 41
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Spring Ioc的理解

Posted on 2008-09-04 06:52 默认为零 阅读(239) 评论(0)  编辑  收藏 所属分类: 技术感悟

  Spring 的IoC容器通过接口注入的方式降低对象之间的依赖关系,也就是降低了业务组件之间的耦合性,业务组件之间的依赖通过配置来实现。应用代码中不需要创建对象。换句话说,就是在配置文件中对哪个组件需要哪项服务进行描述,而不在代码中以硬编码的方式直接和对象与服务器连接。之后IoC容器将负责将他们联系在一起,这是基于面向接口编程原则的高级产物。
  在Spring配置文件中,可以看到一些有着特定名字的Bean,Bean下面的配置是一些属性(property)。这些就是Spirng的核心IoC容器的配置,可以方便地对Spring MVC进行扩展和增强。
  IoC机制有什么好处?说白了就是解耦。举个简单的例子来说,我们经常写测试用例,但是在写用例的时候,可能因为某些业务逻辑中依赖了其他第三方提供的接口,而这些第三方接口仅仅给你提供了接口定义而没有具体运行环境支撑的时候,我们的测试用例根本无法顺利运行起来,这时我们想到了Mock,用Mock类来模拟第三方的接口。这时候如果Mock不是基于Spring的IoC体系建立的话,测试用例就会形成对Mock的强依赖。想象一个场景,使用Mock的用例我们跑通了,但是如果要切换到真实的第三方环境中运行测试用例呢,如何能在不修改代码的前提下实现?可以,因为有IoC容器。IoC让我们被迫基于接口编程,也给了我们极大的便利,只要在Spring运行上下文配置文件中修改测试用例中所注入的Bean定义,就可以切换到真实环境下的测试场景,仅仅是一个配置定义的修改,无需改变任何代码,很轻松的吧。


只有注册用户登录后才能发表评论。


网站导航: