12 2018 档案

环境准备
摘要:前言 环境准备是ApplicationContext扩展功能refresh函数中的第一个步骤,接下来我们就详细的看看准备了什么? 环境准备 prepareRefresh函数主要是做些准备工作,例如对系统属性及环境变量的初始化及验证。 最后的两句代码才是关键,代码中没有什么逻辑处理,initPrope 阅读全文

posted @ 2018-12-29 10:47 AoTuDeMan 阅读(393) 评论(0) 推荐(0)

初识ApplicationContext
摘要:前言 前面的文章一直是以BeanFactory接口以及它的默认实现类XMLBeanFactory为例进行分析,但是,在Spring中还提供了另一个接口ApplicationContext,用于扩展BeanFactory中现有的功能。 ApplicationContext和BeanFactory的区别 阅读全文

posted @ 2018-12-28 21:06 AoTuDeMan 阅读(213) 评论(0) 推荐(0)

初始化bean和销毁bean的扩展
摘要:前言 前两篇文章创建bean和属性注入已经讲述了创建bean的前三个步骤,这篇文章讲述的是创建bean的最后一个步骤 初始化bean。 初始化bean 在bean的配置中有一个init-method的属性,这个属性的作用是在bean实例化前调用init-method指定的方法来根据用户业务进行相应的 阅读全文

posted @ 2018-12-27 20:53 AoTuDeMan 阅读(225) 评论(0) 推荐(0)

属性注入
摘要:前言 上一篇文章创建bean讲述了创建bean的第一二个步骤,这篇文章接着讲述创建bean的第三个步骤 属性注入。 属性注入 在了解循环依赖和创建bean的时候,我们曾经经常反复的提到了populateBean这个函数,这个方法的作用就是对属性进行填充,那么究竟是如何实现填充的呢? 分析上述代码的逻 阅读全文

posted @ 2018-12-26 21:11 AoTuDeMan 阅读(630) 评论(0) 推荐(0)

创建bean
摘要:前言 上一篇文章讲述了循环依赖以及Spring中的循环依赖的处理方式后,我们接着准备创建bean这篇文章来继续讲述bean的创建,先回顾一下(截取部分createBean代码): 可以看出在经历过resolveBeforeInstantiation方法后,上述代码有两个返回途径,如果创建了代理或者说 阅读全文

posted @ 2018-12-25 21:40 AoTuDeMan 阅读(301) 评论(0) 推荐(0)

循环依赖
摘要:定义 什么是循环依赖?循环依赖就是循环引用,就是两个或者多个bean相互之间的持有对方,比如TestA引用TestB,TestB引用TestC,TestC引用TestA,这样它们最终反映为一个环。这里需要强调一点,此情形不是循环调用,循环调用是方法之间的环调用。循环引用如下图: 循环调用是无法解决的 阅读全文

posted @ 2018-12-21 17:05 AoTuDeMan 阅读(1537) 评论(0) 推荐(0)

准备创建bean
摘要:准备创建bean 经过了查看那么多的源码,我们或多或少的能发现一些规律,比如:一个函数中不可能完成所有的逻辑,一个真正干活的函数是以do开头的,例如doGetObjectFromFactoryBean。这篇文章接着上篇文章获取单例讲述,所以先来看看createBean函数中做了哪些准备工作: 从上述 阅读全文

posted @ 2018-12-20 15:47 AoTuDeMan 阅读(215) 评论(0) 推荐(0)

获取单例
摘要:前言 上一篇文章缓存中获取单例bean讲述了从缓存中获取单例的过程,那么,如果缓存中不存在已经加载的单例bean,就需要重新开始加载bean的所有过程了,这篇文章讲述的就是从头开始加载bean的过程中的一个步骤 获取单例。 获取单例 Spring中使用getSingleton的重载方法实现bean的 阅读全文

posted @ 2018-12-20 10:52 AoTuDeMan 阅读(432) 评论(0) 推荐(0)

缓存中获取单例bean
摘要:前言 上一篇文章FactoryBean的使用实际上是为了Bean的加载的详细解析进行的介绍FactoryBean,从这篇文章开始,LZ会对Bean的加载过程进行详细的讲述,之前文章Bean的加载只是对Bean的加载过程进行了快速的大致上的过了一遍,详细的解析过程开始。。。 缓存中获取单例bean 前 阅读全文

posted @ 2018-12-19 21:13 AoTuDeMan 阅读(606) 评论(0) 推荐(0)

FactoryBean的使用
摘要:前言 一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean。在某些情况下,实例化bean的过程比较复杂,如果按照传统的方式,则需要在<bean>中提供大量的配置信息,配置方式的灵活性是受限制的,这时采用编码的方式可能会得到一个更简单的方案。Spring为此提供了 阅读全文

posted @ 2018-12-19 15:26 AoTuDeMan 阅读(1291) 评论(0) 推荐(0)

Bean的加载
摘要:前言 经过前面的文章分析,我们结束了对XML配置文件的解析,这篇文章开始对bean加载进行分析,话不多说,开始。 Bean加载入口 下面有很简单的一段代码可以作为Spring代码加载的入口: ClassPathXmlApplicationContext用于加载CLASSPATH下的Spring配置文 阅读全文

posted @ 2018-12-18 21:52 AoTuDeMan 阅读(355) 评论(0) 推荐(0)

Spring自定义标签实现及踩过的坑(亲测)
摘要:项目结构 先来一张项目结构图,因为LZ是用的IDEAL,网上的大部分都是用的eclipse来实现: 这里也大致说一下项目的新建,考虑到有的读者会想LZ一样对IDEAL的使用不是很熟练。 新建一个spring项目(不会的话网上搜索一下,很简单的),建好之后,再新建这些文件夹,点击File—>Proje 阅读全文

posted @ 2018-12-17 14:22 AoTuDeMan 阅读(321) 评论(0) 推荐(0)

自定义标签的解析
摘要:前言 在之前的文章提到过,Spring中存在默认标签和自定义标签两种,前面的文章已经分析了Spring中对默认标签的解析过程。所以,这篇文章讲述的就是Spring中自定义标签的解析过程。先来回顾一下,当完成从配置文件到Document的转换并提取对应的root后,就开始了所有元素的解析,而这一过程便 阅读全文

posted @ 2018-12-14 16:52 AoTuDeMan 阅读(678) 评论(0) 推荐(0)

alias、beans标签的解析
摘要:前言 前面的文章已经讲述了bean和import标签的解析,这篇文章讲述的是alias标签和beans标签的解析。话不多说,开始。 alias标签的解析 在对bean进行定义时,除了使用id属性来指定名称之外,为了提供多个名称,可以使用alias标签来指定。而所有的这些名称都指向同一个bean,在某 阅读全文

posted @ 2018-12-13 20:43 AoTuDeMan 阅读(321) 评论(0) 推荐(0)

import标签的解析
摘要:前言 Spring默认标签有四种:bean、import、alias、beans,前面的文章已经讲述了bean标签的解析,这篇文章继续了解Spring中默认标签的解析—import标签的解析。 import标签的解析 对于Spring配置文件的编写,我想,经历过庞大项目的人,都有那种恐惧的心理,太多 阅读全文

posted @ 2018-12-13 16:24 AoTuDeMan 阅读(1255) 评论(0) 推荐(0)

注册解析的BeanDefinition
摘要:前言 上两篇文章讲述了bean标签的解析以及bean标签中子元素的解析,其实在注册解析的BeanDefinition之前,还有一步是对bean标签的装饰,即对bean自定义的标签和自定义的属性进行解析,这个将放在后面的文章讲述,这篇文章讲述的是注册解析了的BeanDefinition。 注册解析的B 阅读全文

posted @ 2018-12-12 20:48 AoTuDeMan 阅读(187) 评论(0) 推荐(0)

bean子元素的解析
摘要:前言 在上篇文章bean标签的解析中讲述了BeanDefinition已经完成了对bean标签属性的解析工作。在完成bean标签基本属性解析后,会依次调用parseMetaElements()、parseLookupOverrideSubElements()、parseReplacedMethodS 阅读全文

posted @ 2018-12-11 20:31 AoTuDeMan 阅读(548) 评论(0) 推荐(0)

bean标签的解析
摘要:前言 之前的文章中提到过Spring中的标签包括默认和自定义两种标签,而两种标签的解析以及用法存在着很大的不同,接下来的文章将讲解默认标签的import、alias、bean、beans。这篇文章讲述的是bean标签。 默认标签 默认的标签实在parseDefaultElement 函数中进行解析的 阅读全文

posted @ 2018-12-06 21:48 AoTuDeMan 阅读(1163) 评论(0) 推荐(0)

注册BeanDefinitions
摘要:前言 前面的两篇文章,已经讲述了加载Bean的前两个步骤,这篇文章接着上面的文章来讲述加载Bean的第三个步骤,就是根据第二个步骤得到的Document对象注册Bean信息。 注册BeanDefinitions 获取Document对象后,会根据此对象和Resource资源对象调用registerB 阅读全文

posted @ 2018-12-04 21:15 AoTuDeMan 阅读(162) 评论(0) 推荐(0)

获取Document
摘要:前言 前一篇文章讲述了加载Bean的第一个步骤 XML文件的验证模式,这篇文章将会讲述其第二个步骤,也就是加载XML,得到对应的Document对象。话不多说,开始。 获取Document 经过了验证模式准备的步骤,就可以进行Document加载了。同样的XMLBeanFactoryReader类对 阅读全文

posted @ 2018-12-03 21:38 AoTuDeMan 阅读(286) 评论(0) 推荐(0)

XML的验证模式
摘要:前言 上一篇文章讲述了bean的加载的最关键的三个步骤,这三个步骤很重要,是支撑着Spring容器实现的基础,所以这三个步骤是值得仔细认真的去学习的,其中第一个步骤就是获取XML的验证模式,这篇文章就是讲述这个步骤。 DTD和XSD DTD: DTD(Document Type Definition 阅读全文

posted @ 2018-12-03 16:08 AoTuDeMan 阅读(277) 评论(0) 推荐(0)

容器的基础 XmlBeanFactory(下篇)
摘要:前言 这篇文章是接着上篇文章写的,如果没有看过上篇文章容器的基础 XmlBeanFactory(上篇)建议先去看一下,上篇文章讲述了加载bean之前的,Spring所要做的准备工作,这篇文章就直接讲述Spring加载bean的过程,话不多说,开始。 加载Bean 之前在上一篇文章中讲述到了在XmlB 阅读全文

posted @ 2018-12-03 11:16 AoTuDeMan 阅读(158) 评论(0) 推荐(0)

导航