Spring源码分析之BeanFactory

发布时间 2023-04-28 16:49:14作者: java拌饭

概述

  • 以XmlBeanFactory为例分析
  • Xml描述的Bean被Reasource加载到内存,先解析为Document对象,再解析为BeanDefinition注册到BeanDefinitionRegistry,再通过BeanFactory创建
    • 名词解释
      • Resource是Spring对资源的抽象,主要是用来读取文件输入流
      • Document是java本身的API进行解析的,得到的Dodument对象为XML文件的映射
      • BeanDefinition对象是XML文件中标签的封装
      • BeanDefinitionRegistry 主要作用是使用map保存BeanDefinition
      • BeanFactory主要负责创建对象
    • 解析xml
      • 如果想要通过自定义的xml标签注册Bean,在此阶段完成,如mvc标签、tx标签
    • 创建对象
      • 如果想要扩展Bean创建各阶段,在此阶段完成,如AOP创建代理、Autowired注解支持
    • XmlBeanFactory实现了BeanDefinitionRegistry和BeanFactory,因此可以直接传入XML文件,获取Bean
    • ApplicationContext实现了BeanFactory并添加了扩展功能,核心容器还是由BeanFactory完成

解析xml

创建对象