Spring源码阅读——ClassPathXmlApplicationContext(四)

2018-06-11
阅读 7 分钟
2.9k
在DefaultBeanDefinitionDocumentReader的parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate)方法中,遍历每一个节点,判断是否为默认命名空间中的节点,如果是非默认命名空间的,调用delegate.parseCustomElement(ele)方法进行处理。在学习自定义标签解析之前,先写一个自定义标签的demo。

Spring源码阅读——ClassPathXmlApplicationContext(三)

2018-06-07
阅读 8 分钟
1.8k
在上一篇Spring源码阅读——ClassPathXmlApplicationContext(二)文章的最后,需要解析bean元素,创建BeanDefinitionHolder实例、完成必须的装配和进行最终的注册bean来完成bean元素的解析和注册,下面分别阅读三步的源码。

Spring源码阅读——ClassPathXmlApplicationContext(二)

2018-06-05
阅读 8 分钟
3.1k
在上一篇文章中,分析了ApplicationContext容器的创建,加载资源文件,将资源文件读取为Document。spring将xml文件中的Bean注册spring定义的BeanDefinition对象。在DefaultBeanDefinitionDocumentReader中对Document属性的解析委托给BeanDefinitionParserDelegate这个代理类来实现的。

Spring源码阅读——ClassPathXmlApplicationContext(一)

2018-06-05
阅读 6 分钟
5.3k
ClassPathXmlApplicationContext继承了AbstractXmlApplicationContext,实现了ApplicationContext接口。BeanFactory是所有容器的顶级接口,spring中所有容器都是基于BeanFactory的。ClassPathXmlApplicationContext继承关系如下图: