Ioc容器refresh总结(1)--- Spring源码从入门到精通(三十一)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Ioc容器refresh总结(1)--- Spring源码从入门到精通(三十一)

上篇文章主要介绍了EventListener注解的使用及源码分析:

注解是由EventListenerMethodProcessor后置处理器里的afterSingletonsInstantiated方法,而这个方法顾名思义,在单实例对象初始化之触发的,全部都在ioc容器refresh方法里面。

@EventListener--- Spring源码从入门到精通(三十)


这篇文章主要介绍refresh方法:


一、prepareRefresh()


initPropertySources刷新前的预处理;子类自定义个性化的属性设置方法。

getEnvironment().validateRequiredPropertites()属性效验是否合法。

earlyApplicationEvent事件;保存容器中早期一些事件。

image.png


image.png


二、obtainFreshBeanFactory()获取beanFactory


1、refreshBeanFactory刷新【也就是创建】beanFactory,A、先创建一个beanFactory对象;B、设置序列化id。

2、getBeanFactory返回刚刚由GenericApplicationContext构造方法创建的beanFactory。

3、返回默认的DefaultListableBeanFactory。

image.png

image.png

获取beanFactory之后怎么办呢?


三、prepareBeanFactory预处理beanFactory


1、设置类加载器,表达式解析器等

2、添加beanPostProcessor【ApplicationContextAwareProcessor】

3、通过ignoreDependencyInterface设置忽略自动装配的依赖接口EnviromentAware,EmbeddedValueResolverAware等等。

4、 通过registerResolvableDependency设置自动注入组件beanFactory,    ResourceLoader,AplicationEventPublisher,ApplicationContext。

5、添加另一个beanPostProcessor【AplplicationListenerDetector】

6、添加编译时的AspectJ;

7、给beanFactory中注册一些能用的组件;enviroment【ConfigurableEnviroment】,systemProperties【返回Map】,systemEnviroment【返回Map】

image.png


四、postProcessorBeanFactory


作用:beanFactory准备工作完成后的后置处理工作

  1. 子类可以重写这个方法来给beanFactory创建完成预准备完成之后做进一步设置。


image.png


以上就是BeanFactory的创建及预准备工作。

相关文章
|
11天前
|
Java 测试技术 开发者
Spring IoC容器通过依赖注入机制实现控制反转
【4月更文挑战第30天】Spring IoC容器通过依赖注入机制实现控制反转
21 0
|
3天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
3天前
|
存储 前端开发 Java
Spring Boot自动装配的源码学习
【4月更文挑战第8天】Spring Boot自动装配是其核心机制之一,其设计目标是在应用程序启动时,自动配置所需的各种组件,使得应用程序的开发和部署变得更加简单和高效。下面是关于Spring Boot自动装配的源码学习知识点及实战。
12 1
|
4天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
45 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
11天前
|
安全 Java 开发者
在Spring框架中,IoC和AOP是如何实现的?
【4月更文挑战第30天】在Spring框架中,IoC和AOP是如何实现的?
21 0
|
11天前
|
XML Java 程序员
什么是Spring的IoC容器?
【4月更文挑战第30天】什么是Spring的IoC容器?
19 0
|
12天前
|
设计模式 安全 Java
【初学者慎入】Spring源码中的16种设计模式实现
以上是威哥给大家整理了16种常见的设计模式在 Spring 源码中的运用,学习 Spring 源码成为了 Java 程序员的标配,你还知道Spring 中哪些源码中运用了设计模式,欢迎留言与威哥交流。
|
14天前
|
Java Spring 容器
【Spring系列笔记】IOC与DI
IoC 和 DI 是面向对象编程中的两个相关概念,它们主要用于解决程序中的依赖管理和解耦问题。 控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入和依赖查找。
30 2
|
14天前
|
Java 测试技术 数据库连接
Spring中ioc的优点
总之,Spring中的IoC提供了一种更加灵活、可维护、可测试和可扩展的方式来管理组件之间的依赖关系,从而提高了应用程序的质量和可维护性。这使得开发人员能够更专注于业务逻辑而不是底层的技术细节。
32 1
|
XML 前端开发 Java
Java Spring开发环境搭建及简单入门示例教程
Java Spring开发环境搭建及简单入门示例教程
Java Spring开发环境搭建及简单入门示例教程