BeanDefinationFactoryPostProcess--Spring源码解析(二)

简介: BeanDefinationFactoryPostProcess--Spring源码解析(二)

前面说了bean周期之前先会定义beanDefination,定义完之后,才会开始真正的生产bean。

ApplicationContext(1)--Spring源码解析(一)

先看下ClassPathXmlApplicationContext源码:

image.png

第一个super是初始化父类,获取xml路径资源解析器。

后面的setConfigLocations通过环境变量解析xml文件。

后面refresh基本和AnnocationConfigApplicationContext里的源码一致。

image.png

这时候GenericApplicationContext是注解的实现类,里面主要给factory一个id。另一个AbstractRefreshableApplicationContext 不光给了序列化的id,给了id之后,后面还加载了beanDefinition,在里面将xml解析成docment。

这里主要还是说annocationConfigApplicationContext里通过beanDefinationRead先注册了一个       ConfigurationClassPostProcess,这个主要是处理配置类,还注册了很多其他解析注解的bean定义(比如AutowiredAnnocationPostProcess和ResourceAnnocationPostcess)。  

image.png

image.png

从容器当中获取beanDefinitionRegistryPostProcessor类型的名字,一共调用四次invokeBeanDefinitionRegistryPostProcessor,第一次优先调用实现了 PriorityOrdered接口的,第二次调用实现了ordered接口的,最后调用没有实现任何优先级接口的类。这里面还会调用beanFactoryPostProcess接口。

image.png

image.png

这里实现带注册功能的后置处理器,之后开始调用processConfigBeanDefinitions真正的解析。

image.png

getBeanDefinitionNames从ioc获取所有bean,然后循环,通过bean的名称,获取bean定义,判断他是否被解析过,判断是个完整的配置类(到了configuration注解的就是完整配置类,到了component注解就是一个Lite配置类)。

这里面有个ConfigurationClassParser是解析的类,下图可以看到里面在循环配置类。

image.png


image.png这里开始真正解析配置类componentScan,import等。

相关文章
|
2天前
|
监控 Java 应用服务中间件
Spring Boot 源码面试知识点
【5月更文挑战第12天】Spring Boot 是一个强大且广泛使用的框架,旨在简化 Spring 应用程序的开发过程。深入了解 Spring Boot 的源码,有助于开发者更好地使用和定制这个框架。以下是一些关键的知识点:
20 6
|
2天前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
29 3
|
1天前
HuggingFace Tranformers 源码解析(4)
HuggingFace Tranformers 源码解析
4 0
|
1天前
HuggingFace Tranformers 源码解析(3)
HuggingFace Tranformers 源码解析
5 0
|
1天前
|
开发工具 git
HuggingFace Tranformers 源码解析(2)
HuggingFace Tranformers 源码解析
6 0
|
1天前
|
并行计算
HuggingFace Tranformers 源码解析(1)
HuggingFace Tranformers 源码解析
6 0
|
2天前
|
缓存 前端开发 Java
【框架】Spring 框架重点解析
【框架】Spring 框架重点解析
17 0
|
2天前
|
XML 安全 前端开发
Spring Security 重点解析(下)
Spring Security 重点解析
12 1
|
2天前
|
安全 NoSQL Java
Spring Security 重点解析(上)
Spring Security 重点解析
11 1
|
2天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
57 0

推荐镜像

更多