SPRIN06_源码之核心组件接口BeanDefinition、Debug创建流程、流程图总结(三)

简介: SPRIN06_源码之核心组件接口BeanDefinition、Debug创建流程、流程图总结(三)

⑤. 档案馆(DefaultListableBeanFactory)创建好,初始化好以后有一个方法叫loadBeanDefinitions(beanFactory); 也就是加载所有的bean定义信息,bean的定义信息就是xml配置的各种组件,就叫bean的定义信息


微信图片_20220108230224.png


微信图片_20220108230228.png


⑥. 也就是xml配置的那些组件(bean定义信息),被加载进去了如何加载bean定义信息的呢?


loadBeanDefinitions(beanDefinitionReader); 加载bean的定义信息,它是利用beanDefinitionReader来加载的


beanDefinitionReader这个从XmlBeanDefinitionReader里面来, 它在这里准备了一个beanDefinitionReader(bean定义信息的读取器)


微信图片_20220108230256.png


而beanDefinitionReader叫bean定义信息的读取器,也就是读取那些xml内容的读取器,甚至可以给loadBeanDefinitions下面的XmlBeanDefinitionReader这里打一个断点,来看看这个loadBeanDefinitions读取器是咋读方法的—这一块断点我已取消,因为先放在这


微信图片_20220108230317.png


然后接下来有个方法叫loadBeanDefinitions加载bean的定义信息,它是把读取器beanDefinitionReader传入进去了,而这个beanDefinitionReader这个读取器里面也有资源加载器


  AbstractXmlApplicationContext里面的:
    // Configure the bean definition reader with this context's
    // resource loading environment.
    beanDefinitionReader.setEnvironment(this.getEnvironment());
    beanDefinitionReader.setResourceLoader(this);//持有ioc容器的环境类
    beanDefinitionReader.setEntityResolver(new ResourceEntityResolver(this));
    // Allow a subclass to provide custom initialization of the reader,
    // then proceed with actually loading the bean definitions.
    initBeanDefinitionReader(beanDefinitionReader);
    loadBeanDefinitions(beanDefinitionReader);


这个beanDefinitionReader(读取器)里面又组合了一个叫资源加载器:beanDefinitionReader.setResourceLoader(this)


微信图片_20220108230346.png



相关文章
|
20天前
|
缓存 安全 Java
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
从底层源码入手,通过代码示例,追踪AnnotationConfigApplicationContext加载配置类、启动Spring容器的整个流程,并对IOC、BeanDefinition、PostProcesser等相关概念进行解释
Spring框架中Bean是如何加载的?从底层源码入手,详细解读Bean的创建流程
|
5月前
|
Java 数据库
Activity7整合springboot:流程部署,定义,实例(一)
Activity7整合springboot:流程部署,定义,实例(一)
|
12月前
|
数据处理 数据安全/隐私保护
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(二)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
429 0
|
12月前
|
存储
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(三)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
254 0
|
12月前
|
XML Java 数据库
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)(一)
Flowable:关于流程部署、启动、处理、完成各模块的浅析(图解)
240 0
|
XML 缓存 Java
【spring源码系列-02】通过refresh方法剖析IOC的整体流程
【spring源码系列-02】通过refresh方法剖析IOC的整体流程
132 0
|
存储 XML 前端开发
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)(上)
Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)
62 0
|
设计模式 存储 前端开发
SpringMVC入门(工作原理、框架流程、小实例的创建)
SpringMVC入门(工作原理、框架流程、小实例的创建)
116 0
SpringMVC入门(工作原理、框架流程、小实例的创建)
|
Java 应用服务中间件 Spring
《SpringBoot启动流程四》:图文带你debug源码分析SpringApplication运行阶段和运行后阶段
《SpringBoot启动流程四》:图文带你debug源码分析SpringApplication运行阶段和运行后阶段
242 0
《SpringBoot启动流程四》:图文带你debug源码分析SpringApplication运行阶段和运行后阶段
SPRIN06_源码之核心组件接口BeanDefinition、Debug创建流程、流程图总结(七)
SPRIN06_源码之核心组件接口BeanDefinition、Debug创建流程、流程图总结(七)
123 1
SPRIN06_源码之核心组件接口BeanDefinition、Debug创建流程、流程图总结(七)