前言 可以说前面的都是准备工作,而接下来开始的才是重点,在这一步会完成 BeanFactory 的初始化,同时实例化单例 Bean。 具体怎么操作的,那就一起阅读源码吧! 不过在阅读源码之前,还是需...
前言 上一篇介绍了国际化的使用以及初始化消息源的源码,接下来接着往下阅读,将进入 initApplicationEventMulticaster 、onRefresh 和 registerListeners 的相关操作逻辑。 这一部分主要是初...
前言 前面通过 invokeBeanFactoryPostProcessors 这一步了解到了什么是 BeanFactoryPostProcessor ,以及 BeanFactoryPostProcessor 的使用及作用,并通过 invokeBeanFactoryPostProcessors ...
前言 在阅读完 registerBeanPostProcessors 源码之后, 下一步就进入到 initMessageSource,这一步主要作用是初始化国际化文件。 依然如之前所示,先通过官网了解到国际化的用法,然后再对源...
前言 根据 refresh 流程,当 obtainFreshBeanFactory 执行结束后,下一步会执行 prepareBeanFactory ,顾名思义,这个方法主要是准备 BeanFactory,下面一起看一看这部分逻辑。 prepareBeanF...
前言 invokeBeanFactoryPostProcessors 会执行 BeanFactory 的后置处理器。看到这里会有疑问: 什么是 BeanFactoryPostProcessor ? BeanfactoryPostProcessor 该如何使用? 知道了上面两个问...
前言 前面的准备工作结束之后,就是进入核心代码 refresh。 源码 public void refresh() throws BeansException, IllegalStateException { // 加锁 synchronized (this.startupShutdown......
前言 近期工作开始忙起来,各种忙,连阅读 Spring 源码都暂停了,Doc View 也暂时搁置计划,虽然想有很多功能,但是总是要慢慢来的。 也有几个小伙伴在 github 提了 Issues: 希望支持 IDEA...
前言 在前一篇文章中介绍了如何构建源码阅读环境,既然构建好了源码环境,本地也可以正常运行,那就开始阅读源码吧! 在阅读源码时,会参考官方文档,很多概念在官网都可以得到答案,有兴趣的...
前言 创建容器 在上一篇文章末尾画了一幅简图,现在从简图这入手,先来看看如何创建容器! 1 创建容器 在搭建 Spring 源码阅读环境 时,最后举了一个例子,其实就是创建容器,并从容器中获取...
前言 在前一篇文章:创建 IoC 容器的几种方式中,介绍了四种方式,这里以 AnnotationConfigApplicationContext 为例,跟进代码,看看 IoC 的启动流程。 1 入口 从 JavaConfig 中加载配置的 ...
前言 BeanDefinition:顾名思义,就是 Bean 的定义,是用来描述一个 Bean 都有什么信息。前面说在初始化 DefaultListableBeanFactory 时,会初始化一个 Map<String, BeanDefinition>,这个 ...
前言 BeanDefinition 的概念也了解了,也知道一个 Bean 在 Spring 中定义的信息有哪些之后,继续言归正传。 1 源码分析 在初始化时会先生成一个 reader ,进入方法,其实是走的下面的逻辑: ...
前言 AnnotationConfigApplicationContext 构造函数除了初始化一个 reader ,还有一个 scanner,下面来一起看看 ClassPathBeanDefinitionScanner 都有什么逻辑。 1 源码分析 this.scanner =...
前言 看完无参构造的源码及流程之后,后面将会执行 register 方法。 register 方法,入参是我们的配置类 JavaConfig.class ,下面跟着源码继续往下走! 1 源码分析 this.reader.register(com...
前言 " 有小伙伴反馈说希望可以自定义 Markdown 模版,这样就可以导出自己想要的样式了!这个功能可以有,毕竟大家不可能都生成一模一样的文档。现在来一起看看如何实现自定义模版吧! " 设置...
前言 " 本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑! " 1 环境准备 Git JDK master 分支需要 JDK 11 5.2.x 分支, JDK8 即可 Gradle 6.5.1 IDEA 最新 (2020.2.3) Spring 源码...
- <Start /> - 刘志航 1、HashMap初始化参数都是什么?默认是多少? 2、为什么建议初始化设置容量? 3、tableSizeFor方法是做什么的? 4、如何获取到一个key的hash值?及计算下标? 1 HashMap初始化...
- <Start /> - 刘志航 1、描述下HashMap put(k,v)的流程? 2、它的扩容流程是怎么样的? 1 HashMap put(k,v)流程 通过hash(key方法)获取到key的hash值 调用put方法, 将value存放到指定的位置...
前言 " 在阅读HashMap源码时,会发现在HashMap中使用了红黑树,所以需要先了解什么是红黑树,以及其原理。从而再进一步阅读HashMap中的链表到红黑树的转换,红黑树的增删节点等。 " - <Start...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复