
IOC容器
文章平均质量分 75
埃泽漫笔
OceanBase开源项目ODC(OceanBase Developer Center)的核心贡献者,Github地址:https://github.com/oceanbase/odc,希望大家能赏脸支持下我们OceanBase公司的开源项目,点亮一颗小星星就行。
Maven中央仓库OceanBase开源组件 https://central.sonatype.com/artifact/com.oceanbase/db-browser 和 https://central.sonatype.com/artifact/com.oceanbase/ob-sql-parser 的核心贡献者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
循环依赖源码
一个对象依赖对象闭环到自己tip:不涉及代理对象问题解决方法:当一个对象已经实例化完毕了,还未初始化的时候,将它注入到它所依赖的已经实例好的对象(提前暴露对象),使得它所依赖的对象是个完整对象(实例化+初始化),然后再将这个完整对象注入给它。原创 2025-04-20 22:31:33 · 265 阅读 · 0 评论 -
BeanPostProcessor
注意是 Bean 实例化完毕后及依赖注入完成后触发的,接口的源码如下。在此我举例一个典型的例子 AutowiredAnnotationBeanPostProcessor,是 BeanPostProcessor 的一个子类,是@Autowired 和@Value 的具体实现,其他的子类你也可以按如下的流程自行走一边,注意我的例子只是一个最为简单的例子,也就是用@Autowired 注入了一个普通的字段对象。至此当前的 bean 就实现了@Autowired 的字段注入,整个过程看似简单,但却有诸多细节。原创 2025-04-20 22:13:47 · 242 阅读 · 0 评论 -
BeanFactoryPostProcessor
BeanFactoryPostProcessor 是当 BeanDefinition 读取完元数据(也就是从任意资源中定义的 bean 数据)后还未实例化之前可以进行修改抄录并翻译官方的语句操作 bean 的元数据配置. 也就是说,Spring IoC 容器允许读取配置元数据, 并可以在容器实例化除实例之外的任何 bean之前更改它tip:在(例如使用。原创 2025-04-20 22:06:48 · 469 阅读 · 0 评论 -
4. 依赖注入(DI)
前面我们主要分析了 FileSystemXmlApplicationContext 这个具体的 IoC 容器实现类 的初始化源码,在 IoC 容器 中建立了 beanName 到 BeanDefinition 的数据映射,通过一个 ConcurrentHashMap。现在我们来看一下 Spring 是如何将 IoC 容器中存在依赖关系的 bean 根据配置联系在一起的。原创 2025-04-20 21:46:48 · 834 阅读 · 0 评论 -
3. 将BeanDefinition注册进IoC容器
这篇文章分享一下 spring IoC 容器初始化第三部分的代码,也就是将前面解析出来的 BeanDefinition 对象 注册进 IoC 容器,其实就是存入一个 ConcurrentHashMap<String, BeanDefinition> 中。原创 2025-04-20 21:07:53 · 241 阅读 · 0 评论 -
2. 将bean解析封装成BeanDefinition
接着上一篇的 BeanDefinition 资源定位开始讲1. BeanDefinition的资源定位过程-CSDN博客。Spring IoC 容器 BeanDefinition 解析过程就是把用户在配置文件中配置的 bean,解析并封装成 IoC 容器可以装载的 BeanDefinition 对象,BeanDefinition 是 Spring 定义的基本数据结构,其中的属性与配置文件中 bean 的属性相对应。原创 2025-04-20 21:02:47 · 326 阅读 · 0 评论 -
1. BeanDefinition的资源定位过程
之前一直想系统的拜读一下 spring 的源码,看看它到底是如何吸引身边的大神们对它的设计赞不绝口,虽然每天工作很忙,每天下班后总感觉脑子内存溢出,想去放松一下,但总是以此为借口,恐怕会一直拖下去。所以每天下班虽然有些疲惫,但还是按住自己啃下这块硬骨头。原创 2025-04-20 21:01:36 · 923 阅读 · 0 评论