加载中
Spring 源码学习 15:finishBeanFactoryInitialization(重点)

前言 可以说前面的都是准备工作,而接下来开始的才是重点,在这一步会完成 BeanFactory 的初始化,同时实例化单例 Bean。 具体怎么操作的,那就一起阅读源码吧! 不过在阅读源码之前,还是需...

01/13 08:00
4
Spring 源码学习 14:initApplicationEventMulticaster

前言 上一篇介绍了国际化的使用以及初始化消息源的源码,接下来接着往下阅读,将进入 initApplicationEventMulticaster 、onRefresh 和 registerListeners 的相关操作逻辑。 这一部分主要是初...

Spring 源码学习 12:registerBeanPostProcessors

前言 前面通过 invokeBeanFactoryPostProcessors 这一步了解到了什么是 BeanFactoryPostProcessor ,以及 BeanFactoryPostProcessor 的使用及作用,并通过 invokeBeanFactoryPostProcessors ...

Spring 源码学习 13:initMessageSource

前言 在阅读完 registerBeanPostProcessors 源码之后, 下一步就进入到 initMessageSource,这一步主要作用是初始化国际化文件。 依然如之前所示,先通过官网了解到国际化的用法,然后再对源...

01/02 17:47
15
Spring 源码学习 10:prepareBeanFactory 和 postProcessBeanFactory

前言 根据 refresh 流程,当 obtainFreshBeanFactory 执行结束后,下一步会执行 prepareBeanFactory ,顾名思义,这个方法主要是准备 BeanFactory,下面一起看一看这部分逻辑。 prepareBeanF...

2020/12/27 18:33
0
Spring 源码学习 11:invokeBeanFactoryPostProcessors

前言 invokeBeanFactoryPostProcessors 会执行 BeanFactory 的后置处理器。看到这里会有疑问: 什么是 BeanFactoryPostProcessor ? BeanfactoryPostProcessor 该如何使用? 知道了上面两个问...

2020/12/28 08:00
35
Spring 源码学习 09:refresh 大概流程

前言 前面的准备工作结束之后,就是进入核心代码 refresh。 源码 public void refresh() throws BeansException, IllegalStateException { // 加锁 synchronized (this.startupShutdown......

2020/12/23 09:37
14
IDEA 文档插件 DocView 版本更新:修改 UI 并支持 IDEA 2020.3 !

前言 近期工作开始忙起来,各种忙,连阅读 Spring 源码都暂停了,Doc View 也暂时搁置计划,虽然想有很多功能,但是总是要慢慢来的。 也有几个小伙伴在 github 提了 Issues: 希望支持 IDEA...

2020/12/16 08:00
84
Spring 源码学习 02:关于 Spring IoC 和 Bean 的概念

前言 在前一篇文章中介绍了如何构建源码阅读环境,既然构建好了源码环境,本地也可以正常运行,那就开始阅读源码吧! 在阅读源码时,会参考官方文档,很多概念在官网都可以得到答案,有兴趣的...

2020/12/01 08:00
0
Spring 源码学习 03:创建 IoC 容器的几种方式

前言 创建容器 在上一篇文章末尾画了一幅简图,现在从简图这入手,先来看看如何创建容器! 1 创建容器 在搭建 Spring 源码阅读环境 时,最后举了一个例子,其实就是创建容器,并从容器中获取...

2020/12/02 08:00
0
Spring 源码学习 04:初始化容器与 DefaultListableBeanFactory

前言 在前一篇文章:创建 IoC 容器的几种方式中,介绍了四种方式,这里以 AnnotationConfigApplicationContext 为例,跟进代码,看看 IoC 的启动流程。 1 入口 从 JavaConfig 中加载配置的 ...

2020/12/03 08:00
0
Spring 源码学习 05:BeanDefinition 概念及其实现

前言 BeanDefinition:顾名思义,就是 Bean 的定义,是用来描述一个 Bean 都有什么信息。前面说在初始化 DefaultListableBeanFactory 时,会初始化一个 Map<String, BeanDefinition>,这个 ...

2020/12/04 08:00
0
Spring 源码学习 06:AnnotatedBeanDefinitionReader

前言 BeanDefinition 的概念也了解了,也知道一个 Bean 在 Spring 中定义的信息有哪些之后,继续言归正传。 1 源码分析 在初始化时会先生成一个 reader ,进入方法,其实是走的下面的逻辑: ...

2020/12/05 10:00
0
Spring 源码学习 07:ClassPathBeanDefinitionScanner

前言 AnnotationConfigApplicationContext 构造函数除了初始化一个 reader ,还有一个 scanner,下面来一起看看 ClassPathBeanDefinitionScanner 都有什么逻辑。 1 源码分析 this.scanner =...

2020/12/06 11:00
0
Spring 源码学习 08:register 注册配置类

前言 看完无参构造的源码及流程之后,后面将会执行 register 方法。 register 方法,入参是我们的配置类 JavaConfig.class ,下面跟着源码继续往下走! 1 源码分析 this.reader.register(com...

2020/12/07 08:00
10
DocView 现在支持自定义 Markdown 模版了!

前言 " 有小伙伴反馈说希望可以自定义 Markdown 模版,这样就可以导出自己想要的样式了!这个功能可以有,毕竟大家不可能都生成一模一样的文档。现在来一起看看如何实现自定义模版吧! " 设置...

Spring 源码阅读环境的搭建

前言 " 本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑! " 1 环境准备 Git JDK master 分支需要 JDK 11 5.2.x 分支, JDK8 即可 Gradle 6.5.1 IDEA 最新 (2020.2.3) Spring 源码...

HashMap的初始化,到底都做了什么?

- <Start /> - 刘志航 1、HashMap初始化参数都是什么?默认是多少? 2、为什么建议初始化设置容量? 3、tableSizeFor方法是做什么的? 4、如何获取到一个key的hash值?及计算下标? 1 HashMap初始化...

2020/05/11 09:19
10
HashMap的put kv,是如何扩容的?

- <Start /> - 刘志航 1、描述下HashMap put(k,v)的流程? 2、它的扩容流程是怎么样的? 1 HashMap put(k,v)流程 通过hash(key方法)获取到key的hash值 调用put方法, 将value存放到指定的位置...

2020/05/18 09:19
0
关于红黑树,在HashMap中是怎么应用的?

前言 " 在阅读HashMap源码时,会发现在HashMap中使用了红黑树,所以需要先了解什么是红黑树,以及其原理。从而再进一步阅读HashMap中的链表到红黑树的转换,红黑树的增删节点等。 " - <Start...

2020/05/25 19:26
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部