`
baining97
  • 浏览: 104218 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOC的实现原理

阅读更多

IoC就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。

IOC也是利用JAVA的反射机制,IOC注重的是代码关系之间的无侵入性,具体来说spring更注意这个特点,就是说要将代码之间的关系隔离到代码外部,xml文件中进行配置,每当代码结构变更时,双方的代码都不要被改动即可实现移植.
"如果你需要一个东西,那么不是你自己去取,而是发个指令,有人会送给你","站着别动,我来找你".
这两句话什么意思呢,比方说
          public UserServiceImpl{   
               UserDao userDao;   
               setUserDao(UserDao userDao){   
                 this.userDao = userDao;   
               }   
          }  
 
这个userDao,不需要UserServiceImpl自己去创建这个UserDao对象,IOC容器主动根据UserServiceImpl提供的setUserDaoUserDao实现的对象赋给userDao,这种用set函数设值的方式有叫做type3,用构造器设值叫做type2,用接口设值成为type1.

那么怎么才能在运行时期把userDao设置上去呢,答案是通过反射机制,在运行时,通过反射反射出UserDao的实现类的对象,并通过反射得到UserServiceImplsetUserDao方法,将刚才反射得到的UserDao实现类的对象传给setUserDao方法,就完成了设值工作。这些设值的工作是在加载spring文件构造Bean工厂的时候就完成的.所以启动完毕,每个对象中的需要注射的属性是有值的.就是这样的达到容器管理Bean的效果.
分享到:
评论

相关推荐

    springIoc实现原理

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

    Spring IOC实现原理demo

    总结一下,Spring IOC实现原理主要包括以下步骤: 1. 解析XML配置文件,获取Bean的定义。 2. 使用反射创建Bean实例,处理构造参数和属性注入。 3. 管理Bean的依赖关系,实现依赖注入。 4. 提供`getBean`方法,使外部...

    Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程.doc

    Spring 框架系列(7)- Spring IOC 实现原理详解之 IOC 初始化流程 本文将详细解释 Spring 框架中的 IOC(Inversion of Control,控制反转)实现原理之 IOC 初始化流程。IOC 是一种软件设计模式,用于将软件系统中...

    SpringIOC原理实现

    在这个例子中,我们将通过导入Excel数据来深入理解Spring IOC的工作原理,并探讨如何自定义实现。 1. **控制反转**:在传统的编程模式中,我们经常手动创建和管理对象,但在Spring中,对象的创建、初始化、依赖关系...

    Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等).doc

    Spring 框架系列(8)- Spring IOC 实现原理详解之 Bean 实例化(生命周期、循环依赖等) 本文主要研究 Spring 框架中 Bean 的实例化过程,包括 Bean 的生命周期和循环依赖问题的解决方案。在 Spring 框架中,Bean ...

    Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计.doc

    Spring 框架的IoC(Inversion of Control,控制反转)实现原理是其核心特性之一,它使得组件之间的依赖关系不再由代码直接管理,而是交由容器负责。本篇文章将详细探讨Spring IoC的体系结构设计,以及如何实现这些...

    IOC 基础实现 IOCBlue (研究用) C#

    根据自己所了解的一些知识,以比较简单的方式实现一下IOC模式(包括反射和XML文件读取数据访问中间件,和一些网上摘录的资料文本)供大家学习研究之用.本人MSN:xia_xiujun@hotmail.com 欢迎一起加油提高(本模块只用研究...

    简单实现Spring的IOC原理详解

    简单实现Spring的IOC原理详解 Spring IOC(Inversion of Control,控制反转)是一种软件设计模式,它将对象的创建和管理交给容器,实现了对象之间的解耦合。Spring IOC容器是Spring框架的核心,用于管理应用程序中...

    自己实现ioc实例demo

    但理解如何手动实现这个过程可以帮助我们更好地理解IoC的核心原理,从而更有效地利用现有的IoC框架。 总的来说,这个“自己实现ioc实例demo”旨在帮助开发者理解依赖注入的基本概念,并通过XPath解析XML文件实践这...

    Spring的IOC原理

    **四、Spring的IOC实现** Spring框架是实现IOC的一个典型例子。在Spring中,IOC容器(ApplicationContext)负责管理对象的生命周期和装配。开发者通过XML配置、注解或Java配置来定义对象及其依赖关系。Spring容器...

    spring ioc和aop原理流程图(详细)

    Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...

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

    本篇文章将深入探讨Spring实现原理,阐述IoC容器的优点,并指导如何在Eclipse中创建一个Spring的Web应用。 首先,让我们理解Spring的核心——IoC容器。IoC是一种设计模式,它改变了对象获取依赖的方式。在传统的...

    IoC原理的最基础实现

    此项目是对spring ioc原理的简单实践,主要是对xml配置的解析完成依赖注入;此项目依赖于 Dom4j 、common-beanutils、common-logging、jaxen的jar包。希望可以帮助大家更轻易的理解spring ioc部分原理

    Spring2.5 IOC的简单实现

    以下将详细讲解 Spring 2.5 中的 IOC 实现原理以及如何创建简单的应用。 **1. IOC 简介** IOC 是一种设计模式,它将对象的创建和管理交给容器处理,使得代码更加松耦合。Spring 框架通过 XML 配置文件或注解方式来...

    IOC的原理以及自定义使用

    虽然有许多成熟的IOC容器,如Spring、Guice等,但理解其原理并自定义实现有助于深入学习。自定义IOC主要包括以下几个步骤: 1. **创建Bean仓库**:用于存储所有的Bean定义,包括类名、构造函数、依赖关系等信息。 2....

    ioc原理实现BufferKnife

    **IOC原理实现BufferKnife** IOC(Inversion of Control),即控制反转,是软件设计模式中的一种,它将对象的创建和管理权交给了容器,而不是由对象自身来负责。这种设计思想使得代码更加灵活,降低了模块间的耦合...

    使用Java的xml API、Java反射技术演示Spring的DI或者IoC原理

    3. 如果一切正常,你会看到使用Java集合、XML API,以及反射技术模拟Spring的get注入和自定义的IoC容器实现的例子--get注入了Hello类和一个MyFrame类,并且实例化之后可以运行! 4. 看一下testDemoSpringDI()方法,...

    Spring IOC设计原理解析.docx

    Spring IOC(Inversion of Control,控制反转)设计原理解析 一、什么是IOC/DI? IOC,即控制反转,是软件设计模式中的一种,它将对象的创建和管理权交给了框架,而不是由对象自身负责。DI(Dependency Injection,...

    所有j2ee框架方面的原理全集

    对所有j2ee框架的原理做了解析,dwr的实现原理 hibernate缓存的配置 ioc实现原理 javascript原型 javacript中继承 jboss ibatis 解决延迟加载等等本人近段时间的呕心之做

    SpringIoC的简单实现

    我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring的IoC——从一个...

Global site tag (gtag.js) - Google Analytics