1 / 86
文档名称:

Spring源码分析.pdf

格式:pdf   大小:497KB   页数:86页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Spring源码分析.pdf

上传人:yinjiong623147 2016/8/24 文件大小:497 KB

下载得到文件列表

Spring源码分析.pdf

文档介绍

文档介绍:一、 IOC 容器在认真学****的三部曲之一: <<Professional Java Development with the spring framework>>, 顺便也看了看源代码想知道个究竟,抛砖引玉,有兴趣的同志一起讨论研究吧! 以下内容引自博客: http://jiwenke-spring./ , 欢迎指导:) 在 Spring 中, IOC 容器的重要地位我们就不多说了,对于 Spring 的使用者而言, IOC 容器实际上是什么呢?我们可以说 BeanFactory 就是我们看到的 IoC 容器,当然了 Spring 为我们准备了许多种 IoC 容器来使用,这样可以方便我们从不同的层面,不同的资源位置,不同的形式的定义信息来建立我们需要的 IoC 容器。在 Spring 中,最基本的 IOC 容器接口是 BeanFactory - 这个接口为具体的 IOC 容器的实现作了最基本的功能规定 - 不管怎么着,作为 IOC 容器,这些接口你必须要满足应用程序的最基本要求: Java 代码 1. public interface BeanFactory { 2. 3. //这里是对 FactoryBean 的转义定义,因为如果使用 bean 的名字检索 FactoryBean 得到的对象是工厂生成的对象, 4. //如果需要得到工厂本身,需要转义 5. String FACTORY_BEAN_PREFIX = "&" ; 6. 7. 8. //这里根据 bean 的名字,在 IOC 容器中得到 bean 实例,这个 IOC 容器就是一个大的抽象工厂。 9. Object getBean(String name) throws BeansException; 10. 11. //这里根据 bean 的名字和 Class 类型来得到 bean 实例,和上面的方法不同在于它会抛出异常:如果根据名字取得的 b ean 实例的 Class 类型和需要的不同的话。 12. Object getBean(String name, Class requiredType) throws BeansException; 13. 14. //这里提供对 bean 的检索,看看是否在 IOC 容器有这个名字的 bean 15. boolean containsBean(String name); 16. 17. //这里根据 bean 名字得到 bean 实例,并同时判断这个 bean 是不是单件 18. boolean isSingleton(String name) throws NoSuchBeanDefinitionException; 19. 20. //这里对得到 bean 实例的 Class 类型 21. Class getType(String name) throws NoSuchBeanDefinitionException; 22. 23. //这里得到 bean 的别名,如果根据别名检索,那么其原名也会被检索出来 24. String[] getAliases(String name); 25. 26. } 在 BeanFactory 里只对 IOC 容器的基本行为作了定义,根本不关心你的 bean 是怎样定义怎样加载的 - 就像我们只关心从这个工厂里我们得到到什么产品对象,至于工厂是怎么生产这些对象的,这个基本的接口不关心这些。如果要关心工厂是怎样产生对象的,应用程序需要使用具体的 IOC 容器实现- 当然你可以自己根据这个 BeanFactory 来实现自己的 IOC 容器,但这个没有必要,因为 Spring 已经为我们准备好了一系列工厂来让我们使用。比如 XmlBeanFactory 就是针对最基础的 BeanFactory 的 IOC 容器的实现 - 这个实现使用 xml 来定义 IOC 容器中的 bean 。 Spring 提供了一个 BeanFactory 的基本实现, XmlBeanFactory 同样的通过使用模板模式来得到对 IOC 容器的抽象- AbstractBeanFactory,DefaultListableBeanFactory 这些抽象类为其提供模板服务。其中通过 resource 接口来抽象 bean 定义数据,对 Xml 定义文件的解析通过委托给 XmlBeanDefinitionReader 来完成。下面我们根据书上的例子,简单的演示 IOC 容器的创建过程: Java 代码 1. ClassPathResource res = new Cla

最近更新

生物成因碳酸钙矿化机制的仿生实验研究的开题.. 2页

烘干塔建设可行性报告 38页

生活垃圾收运网络风险研究的开题报告 2页

智能助行器项目计划书 32页

2024年交通安全及管制专用设备投资申请报告代.. 69页

生命体征监测系统分析与设计的开题报告 2页

甜玉米耐铝性的研究的开题报告 2页

甘肃地区协作联动机制下10kV配电线路带电作业.. 2页

瑜伽对产后妇女身心健康影响的实验研究的开题.. 2页

班级规范现状的理性探析——以上海市S中学为例.. 2页

玻璃纤维纬编针织物增强复合材料力学性能研究.. 2页

松北区规划可行性报告 42页

现代汉语转折表达的篇章、语用功能研究的开题.. 2页

现代汉语专名研究的开题报告 2页

现代市场经济视域下我国诚信体系的构建研究的.. 2页

文化广场可行性报告 37页

收购废机油可行性报告 37页

人教版小学五级语文下册队镂脑暗厮腜PT课件 8页

成都设立学校可行性报告 28页

独圆环病毒2型与猪戊型肝炎病毒在江西猪群的混.. 2页

开设分公司可行性报告 27页

特发性血小板减少性紫癜与骨髓增生异常综合征.. 2页

物联网可信感知与识别关键技术研究开题报告 2页

牛津初中英语任务型教学的实践与研究的开题报.. 2页

父母教养方式与中职生社会适应的关系的开题报.. 2页

工业用地改造可行性报告 35页

展示园项目可行性报告 35页

煤直接制甲烷的热力学分析和实验研究的开题报.. 2页

家装项目可行性报告 33页

热阻式路面材料研究的开题报告 2页