上一节介绍了封装bean对象的 "BeanDefinition接口" 。从前面小结对 "BeanFactory的介绍" 中,我们知道bean对象是存储在map中,通过调用getBean方法可以得到bean对象。在接口BeanFactory中定义了多个相同签名的getBean方法,如下所示: Defa ...
分类:
编程语言 时间:
2017-11-14 14:09:44
阅读次数:
257
xml bean factory 的解析过程的 堆栈大概是这样的: 可见,spring xml 文件的解析 基本是由 XmlBeanDefinitionReader 完成的。 bean 在代码层面的定义, 其实可以是非常丰富的。 最常见的, 当然就是 xml 文件中的 bean 元素了吧。 如果考虑 ...
分类:
编程语言 时间:
2017-11-12 14:10:07
阅读次数:
186
从一个异常探索autowired 的原理。 首先环境是这样的: xml 是这样的: 测试类: 结果是出现异常: spring 的启动过程中会读取配置的xml,注册所有的 beanDefinition,这个是准备过程。 准备完后是 beanfactory 的refresh ,这个时候会 进行注解的处理 ...
分类:
编程语言 时间:
2017-11-11 16:03:24
阅读次数:
256
我们知道BeanDefintion定义了Bean在IoC容器内的基本数据结构。在学习IoC之前先了解BeanDefition对我们理解IoC容器是有帮助的。 首先BeanDefinition是一个接口,继承了AttributeAccessor和BeanMetadataElement。 我们主要来学习 ...
分类:
其他好文 时间:
2017-11-07 19:50:07
阅读次数:
226
恢复内容开始 前言 在上一篇中有一处代码是BeanDefiniton注册的入口,我们回顾一下。 1.BeanDefiniton在IOC容器注册 首先我们回顾两点,1. 发起注册的地方;2. 注册的实现类 1.发起注册的地方 我们先看第一点,在上篇博文中我们讲了Bean的解析,在DefaultBean ...
分类:
编程语言 时间:
2017-11-06 14:57:17
阅读次数:
251
1.Source 2.beanDefinition 3.AbstractBeanFactory ...
分类:
编程语言 时间:
2017-10-31 22:19:03
阅读次数:
244
Spring通过ResourceLoader来处理得到的Resource。我们先看下前面提到的ClassPathXmlApplicationContext 类定义: refresh()方法会开始初始化容器,在refresh()方法中,准备好上下文之后通过obtainFreshBeanFactory( ...
分类:
编程语言 时间:
2017-10-15 19:50:15
阅读次数:
287
在DefaultListAbleBeanFactory中通过一个HashMap持有载入的BeanDefinition信息 ,这个HashMap的定义在DefaultListAbleBeanFactory中可以看到: 将解析得到的BeanDefinition向IOC容器beanDefinitionMa ...
分类:
编程语言 时间:
2017-10-15 19:32:14
阅读次数:
126
当容器已经载入了BeanDefinition的信息完成了初始化,我们继续分析依赖注入的原理,需要注意的是依赖注入是用户第一次向IOC容器获取Bean的时候发生的,这里有个例外,那就是如果用户在BeanDefinition里面指定了lazy-init属性完成预实例化,那么依赖注入的过程则在初始化过程中 ...
分类:
编程语言 时间:
2017-10-15 17:41:51
阅读次数:
306
在Spring容器中,Bean的实例以BeanDefinition来表示的。一个BeanDefinition描述了一个Bean实例。
分类:
编程语言 时间:
2017-10-07 21:20:52
阅读次数:
123