spring容器通过反射的方式创建bean对象,在创建之前需要知道bean对象的类信息,定义bean对象有如下2种方式:
定义bean对象形式多种多样
xml、注解、properties、json、yaml
例如xml:
xml定义bean
首先加载xml文件到内存,得到io流,使用sax或dom4j将xml解析成document对象,然后得到父子节点node,然后设置到BeanDefinition中
不同的定义方式对应不同的解析方式,而spring容器需要一个统一的规范来接收解析好的bean信息。
spring容器通过BeanDefinition来接收定义好的bean信息。
所有需要进行解析的操作都需要实现BeanDefinitionReader接口。
spring容器通过BeanDefinition根据bean定义好的类信息通过反射的方式创建对象、使用和销毁。
postProcessor
为了完成某些具体的扩展功能,有以下两种后置处理器的实现方式: