spring源码学习笔记,要点归纳和代码理解
前言
本节主要讲述了以下几点:
- 演示容器的基本用法
- 概述beans的核心类及其继承关系
- 详解了xml文件从加载到和验证过程
容器基本用法
参考上节
beans包的核心类及其继承关系
-
DefaultListableBeanFactory
整个bean加载的核心部分,是Spring注册及加载bean的默认实现
- XmlBeanDefinitionReader
读取xml文件配置,解析成bean的属性
xml文件加载到解析的过程
- 加载对应的resource文件
- 通过DocumentLoader对Resource文件进行转换,将文件转换为Document
- 通过实现接口BeanDefinitionDocumentReader 的 DefaultBeanDefinitionDocumentReader类对Document解析
需要注意的点
- 在AbstractAutowireCapableBeanFactory的初始化过程中,
public AbstractAutowireCapableBeanFactory() {
super();
ignoreDependencyInterface(BeanNameAware.class);
ignoreDependencyInterface(BeanFactoryAware.class);
ignoreDependencyInterface(BeanClassLoaderAware.class);
}
ignoreDependencyInterface
方法,可以忽略给定接口的自动装配功能,即递归初始化的功能,比如A中有属性B,正常情况下会自动初始化B,如果B实现了BeanNameAware接口,则不会初始化.
典型应用是通过其他方式机械Application上下文注册依赖,类似于BeanFactory通过BeanFactoryAware进行注入或者ApplicationContext通过ApplicationContextAware注入.
总结
可以说本章的内容还是比较简单的,主要是xml文件的初始化,验证解析等.大概浏览下代码即可.
网友评论