文档详情

《spring ioc 分析》.pdf

发布:2015-12-27约7.16万字共34页下载文档
文本预览下载声明
Spring IOC容器实现分析 准备工作 我们都知道,IOC容器和AOP是Spring框架的核心,To the developer, for the developer and by the developer - 简化JAVA 业应用的的开发是Spring框架的目标,为更好的使用IOC容器,我们结 合Spring IOC的源代码对它的实现作一个分析。在了解IOC容器实现的基础上,Spring的使用者可以跟 好的使用IOC容器和Spring框架,同时如果需要对Spring框架作自己的扩展,这些方面的了解也是很有 必要的。我们在这里假设读者已经具备对Spring IOC容器使用的基本知识 - 关于对Spring IOC容器的 使用,可以参考以下的参考资料,这里就不对一些使用和配置的问题多做讲解了。 • Spring Framework Reference Guide • Spring In Action • Expert One-on-one J2EE Development without EJB • Professional Java Development with the Spring Framework 还需要准备好Spring的源代码,我们这里用的代码是Spring2.0,当然了一个可以查看源代码的编辑器 也是需要的,这里使用的是Eclipse3.2 - 很多说明性的图例都是直接从屏幕拷贝下来的。下面是一些文 章中用到的专有词汇: 上下文:ApplicationContext Bean定义信息:BeanDefinition Bean工厂:BeanFactory 工厂Bean:FactoryBean 单件:Singleton 概述:基本IOC容器和上下文 因为IOC容器为应用开发者管理对象之间的依赖关系提供了很多便利和基础服务,所以业界有许多IOC 容器供开发者选择,Spring Framework就是其中的一个。对Spring IOC容器的使用来说,我们常常接 触到的Bean工厂和上下文就是IOC容器的表现形式,在这些Spring提供的基本IOC容器的接口定义和 实现的基础上,我们通过定义Bean定义信息来管理应用中的对象依赖关系。 在使用Spring IOC容器的时候,了解Bean工厂和上下文之间的区别对我们了解Spring IOC容器是比 较重要的。从实现上来看,IOC容器定义的基本接口是在Bean工厂定义的,也就是说Bean工厂是 Spring IOC容器的最基本的形式,很显然,BeanFactory只是一个接口类,没有给出IOC容器的实现, 只是对IOC容器需要提供的最基本的服务做了定义,象我们下面看到的 DefaultListableBeanFactory,XmlBeanFactory, ApplicationContext这些都可以看成是IOC容器 的某种具体实现。看看Bean工厂是怎样定义IOC容器的基本服务的: public interface BeanFactory { //这里是对工厂Bean的转义定义,因为如果使用bean的名字检索IOC容器得到的对象是工厂Bean 生成的对象, //如果需要得到工厂Bean本身,需要使用转义的名字来向IOC容器检索 String FACTORY_BEAN_PREFIX = ; //这里根据bean的名字,在IOC容器中得到bean实例,这个IOC容器就象一个大的抽象工厂,用户可 以根据名字得到需要的bean //在Spring中,Bean和普通的JAVA对象不同在于: //Bean 已经包含了我们在Bean定义信息中的依赖关系的处理,同时Bean是已经被放到IOC容器中 进行管理了,有它自己的生命周期 Object getBean(String name) throws BeansException; //这里根据bean的名字和Class类型来得到bean实例,和上面的方法不同在于它会抛出异常:如果根 据名字取得的bean实例的Class类型和需要的不同的话。 Object getBean(String name, Class requiredType) throws BeansException; //这里提供对bean的检索,看看是否在IOC容器有这个名字的bean boolean containsBean(String name); //这里根据bean名字得到bean实例,并同时判断这个bean是不是单件,在配置的时候,
显示全部
相似文档