`
tenn
  • 浏览: 572578 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

流行FrameWork整合之Spring­­—— IoC反向控制篇

阅读更多

J2EE开发正在变得越来越复杂,J2EE已经发展为一个API、复杂化的编程和配置的复杂网络。这几年,新的框架和方法不断涌现从一定程度上缓解了开发的复杂和降低了开发的成本,但是要把这些Framework整合起来,如Struts,JSF,Webwork,Hibernate,JDO等等,并不是那么容易,就目前来看这个职位只有Spring能够胜任,采用的就是IoC技术。那么反向控制到底什么?

其实很简单。IOC(Inversion of control)和OOP中DIP(dependence Inversion )和Martin Fowler 称Dependency Injection(http://martinfowler.com/articles/injection.html)三者一样。又称好莱坞原则。目的要减少耦合。

反向控制(IoC)/依赖注入,这是Spring的核心,也是精髓。所谓IoC,对于spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。简单来说,

传统的程序开发,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。 

 那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告诉它我想找个什么样的女朋友,比如长得像应采儿,身材像林熙雷,唱歌像周杰伦,忽悠的像赵本山,技术像罗纳尔多之类的,然后婚介(Spring)就会按照我们的要求,提供一个MM,我们只需要去和她谈恋爱、结婚。如果婚介给我们的人选不符合要求,我们就会抛出异常。整个过程不再由我自己控制,而是有婚介(Spring)这样一个类似容器的机构来控制。所有的类都会在spring容器中登记,告诉spring你的属性和方法,你需要什么女朋友,然后spring会在系统运行到适当的时候,把你要的女朋友主动给你,同时也把你交给其他需要你的资源。所有的类的创建、销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。 

 IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。少耦合使用配置文件,起初TXT,  到Window's ini文件,注册表,到近期xml文件。怎么读配置文件?现在一般都有专门的类(configuration,或context)。然后用工厂模式(Factory类),通过Java 反射(reflection)实例化具体类(instance)。主程序商业逻辑使用抽象类(Abstact)或接口。 

Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。关于反射的相关资料请查阅java doc。 

总之,降低耦合性是java发展的方向,现在除了IoC,我还没有找到更合适的解耦方法,欢迎大家批评,这仅是个人看法!

分享到:
评论

相关推荐

    Spring——IOC(控制反转)与DI(依赖注入).docx

    Spring框架中的IOC(控制反转)和DI(依赖注入)是两种关键的设计模式,它们极大地提升了软件的可维护性和可扩展性。控制反转是一种设计思想,它改变了传统的对象创建方式,将对象的创建和管理权从应用程序自身转移...

    Spring整合Mybatis+SpringIOC

    本文将详细介绍Spring如何与Mybatis整合以及Spring的IOC(Inversion of Control,控制反转)机制。 **Spring整合Mybatis** 1. **配置Mybatis-Spring桥接器** 首先,我们需要引入Mybatis和Spring的相关依赖。在`...

    Java EE 框架整合开发⼊⻔到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf

    这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...

    springIoc实现原理

    Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中对象的创建和管理方式。在传统的软件设计中,对象的创建和依赖关系的维护通常由代码自身来完成,而在Spring Ioc中...

    Spring IOC 控制反转

    ### Spring IOC控制反转详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,提供了全面的基础架构支持,让开发者能够轻松地开发出松耦合的应用程序。它通过依赖注入(Dependency Injection, DI)和...

    SpringIoC的简单实现

    【SSH进阶之路】一步步重构容器实现Spring的IoC——解决容器对组件的“侵入式”管理的两种方案--服务定位器和IoC容器(九) 【SSH进阶之路】一步步重构容器实现Spring的IoC——工厂+反射+配置文件实现IoC容器(十)

    Spring Framework 6 中文文档

    核心技术章节深入探讨了Spring的核心组件——IoC(Inversion of Control)容器。IoC容器是Spring的核心,负责管理对象的生命周期和依赖关系。Bean是容器中的基本单元,它们被容器初始化、装配和管理。Spring提供了...

    Spring中IoC优点与缺点解析

    Spring 中 IoC 优点与缺点解析 IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 ...

    Spring核心学习IOC部分

    在Spring框架中,IOC(Inversion of Control,控制反转)是其核心概念之一,它改变了传统应用程序中的对象创建和管理方式。本学习资料主要聚焦于Spring的IOC容器,特别是从最基本的BeanFactory开始,逐步深入理解...

    Spring源码分析_Spring_IOC

    在探讨Spring框架的核心组件之一——IOC(Inversion of Control,控制反转)容器之前,首先需要理解它在Spring框架中的角色与地位。对于Spring的使用者而言,IOC容器不仅是管理Bean(即应用中的对象实例)生命周期的...

    spring ioc

    标题 "Spring IOC" 描述了我们讨论的核心主题——Spring 框架中的依赖注入(Inversion of Control,简称 IOC)机制。Spring 是一个广泛应用的 Java 应用开发框架,其核心特性之一就是IOC,它极大地简化了软件组件...

    springIOC手写框架分析

    springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC手写框架分析springIOC...

    spring ioc模块手写demo

    spring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demospring ioc模块手写demo...

    spring_ioc

    这是spring_ioc部分的内容。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    springioc和spring aop

    Spring框架是Java开发中不可或缺的一部分,它通过提供两种核心特性——控制反转(IoC)和面向切面编程(AOP)来简化应用的构建。理解并掌握这两种技术对于任何Java开发者来说都至关重要。 **控制反转(IoC)**,也...

    spring IOC控制反转 xmind

    spring IOC控制反转 spring IOC控制反转 spring IOC控制反转

    Java Spring代理模式AOP-IOC分析

    Java Spring代理模式AOP-IOC分析 一、代理模式概述 在软件设计中,代理模式是一种常用的设计模式。它可以在不修改原始代码的情况下,扩展或修改原始对象的行为。代理模式可以分为静态代理和动态代理两种。静态代理...

    Spring之IOC示例

    本文将深入探讨Spring的核心特性——控制反转(Inversion of Control,简称IOC),并通过实例解析其工作原理。 控制反转(IOC)是Spring框架的核心设计理念,它将对象的创建和管理权从代码中剥离出来,交由Spring...

    Spring实现原理及IoC容器的优点

    Spring框架是Java开发中不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)理念,极大地简化了企业级应用的开发。本篇文章将深入探讨Spring实现...

Global site tag (gtag.js) - Google Analytics