processConfigBeanDefinitions方法: checkConfigurationClassCandidate 查看一个BeanDefinition是不是可以被parser解析,逻辑是如果有@Configuration的那么是full,如果是有@Component,@Compone ...
分类:
其他好文 时间:
2018-05-22 22:15:05
阅读次数:
131
接着上文《spring源码阅读(2)-- 容器启动之加载BeanDefinition》,当spring加载完所有BeanDefinition时,并不会马上去创建bean,而是先配置beanFactory,例如设置一下装配规则和判断是否需要创建一些指定的bean。 当设置完beanFactory,接下 ...
分类:
编程语言 时间:
2018-05-03 12:50:04
阅读次数:
164
在《spring源码阅读(1)-- 容器启动之资源定位》一文中,阅读了spring是怎么根据用户指定的配置加载资源,当加载完资源,接下来便是把从资源中加载BeanDefinition。 BeanDefinition作为spring其中一个组件,spring是这样描述BeanDefinition的:B ...
分类:
编程语言 时间:
2018-04-25 17:14:19
阅读次数:
176
Spring IoC容器管理一个或多个bean。这些bean是使用您提供给容器的配置元数据创建的,例如,以XML <bean/>定义的形式 。 在容器本身中,这些bean定义被表示为 BeanDefinition对象,其中包含以下元数据(以及其他信息): 包限定的类名称:通常是所定义的bean的实际 ...
分类:
编程语言 时间:
2018-04-09 18:58:54
阅读次数:
242
这一章我们来分析Spring是如何解析<bena></bean>生成BeanDefinition的,进入 第9行,解析<bean/>节点,进入processBeanDefinition方法 第6行,创建了BeanDefinitionHolder实例(此实例包含了BeanDefinition、Bean ...
分类:
编程语言 时间:
2018-04-08 18:13:09
阅读次数:
117
对于配置文件,解析和装饰完成之后,对于得到的beanDefinition已经可以满足后续的使用要求了,还剩下注册,也就是processBeanDefinition函数中的BeanDefinitionReaderUtils.registerBeanDefinition(bdHolder,getRead ...
分类:
编程语言 时间:
2018-04-03 10:53:53
阅读次数:
611
我们虽然获得了Bean的描述信息BeanDefinition,但是什么时候才会真正的实例化这些Bean呢。其实一共有两个触发点,但是最后实际上调用的是同一个方法。 第一个:在AbstractApplicationContext的refresh()方法中,容器会初始化lazy-init=false的b ...
分类:
编程语言 时间:
2018-03-27 01:49:21
阅读次数:
217
一:DefaultBeanDefinitionDocumentReader 二:BeanDefinitionParserDelegate 三:AbstractBeanDefinition 类 四:注册解析的BeanDefinition (1)BeanDefinitionReaderUtils 类 ( ...
分类:
编程语言 时间:
2018-02-09 23:51:44
阅读次数:
235
1.入口是运用上下文的refresh方法 1.资源定位,可以从类路径,文件系统, URL 等方式来定为资源位置 2.载入:beandefinition 3.注册 4.依赖注入 ...
分类:
编程语言 时间:
2018-02-02 14:34:42
阅读次数:
165
Bean实例化的几种场景 1、BeanDefinitionRegistryPostProcessor实例化:标准BeanFactoryPostProcessor的扩展,BeanFactoryPostProcessor的作用是用来进一步定义注册的BeanDefinition,IoC容器本质就是Bean ...
分类:
编程语言 时间:
2017-11-16 18:43:18
阅读次数:
139