写点什么

源码阅读

0 人感兴趣 · 32 次引用

  • 最新
  • 推荐

Spring 源码学习 14:initApplicationEventMulticaster、onRefresh 和 registerListeners

用户头像
程序员小航13 小时前

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

Spring 源码学习 11:invokeBeanFactoryPostProcessors

用户头像
程序员小航2020 年 12 月 28 日

invokeBeanFactoryPostProcessors 会执行 BeanFactory 的后置处理器。

Spring 源码学习 10:prepareBeanFactory 和 postProcessBeanFactory

用户头像
程序员小航2020 年 12 月 27 日

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

Spring 源码学习 09:refresh 大概流程

用户头像
程序员小航2020 年 12 月 23 日

准备工作结束之后,就是进入核心代码 refresh。

https://static001.geekbang.org/infoq/70/70ba4bb49ecfe22d84d0288ad8a97055.png?x-oss-process=image/resize,w_416,h_234

Spring 源码学习 08:register 注册配置类

用户头像
程序员小航2020 年 12 月 7 日

看完无参构造的源码及流程之后,后面将会执行 register 方法。

https://static001.geekbang.org/infoq/8f/8fb106d581c4fe54820e875be2666f92.jpeg?x-oss-process=image/resize,w_416,h_234

Spring 源码学习 07:ClassPathBeanDefinitionScanner

用户头像
程序员小航2020 年 12 月 6 日

AnnotationConfigApplicationContext 构造函数除了初始化一个 reader ,还有一个 scanner,下面来一起看看 ClassPathBeanDefinitionScanner 都有什么逻辑。

https://static001.geekbang.org/infoq/c6/c6441cfd0b43765d3358f93a6d634c4a.jpeg?x-oss-process=image/resize,w_416,h_234

Spring 源码学习 06:AnnotatedBeanDefinitionReader

用户头像
程序员小航2020 年 12 月 5 日

BeanDefinition 的概念也了解了,也知道一个 Bean 在 Spring 中定义的信息有哪些之后,继续言归正传。

https://static001.geekbang.org/infoq/2d/2d7df0a885599805bce23d47f8d18e3b.jpeg?x-oss-process=image/resize,w_416,h_234

Spring 源码学习 05:BeanDefinition 概念及其实现

用户头像
程序员小航2020 年 12 月 4 日

结合官方文档以及源码,一起了解一下 BeanDefinition!

https://static001.geekbang.org/infoq/bd/bd360ee275649aa3515ca19ecab15bdf.jpeg?x-oss-process=image/resize,w_416,h_234

Spring 源码学习 04:初始化容器与 DefaultListableBeanFactory

用户头像
程序员小航2020 年 12 月 3 日

在前一篇文章:创建 IoC 容器的几种方式中,介绍了四种方式,这里以 AnnotationConfigApplicationContext 为例,跟进代码,看看 IoC 的启动流程。

https://static001.geekbang.org/infoq/e0/e066714b3b6cb006bf656c81aaf0bbcb.jpeg?x-oss-process=image/resize,w_416,h_234

Spring 源码学习 03:创建 IoC 容器的几种方式

用户头像
程序员小航2020 年 12 月 2 日

根据元数据配置方式不同,介绍几种创建容器的方式。

https://static001.geekbang.org/infoq/89/891b0afbbf55d5d20d322f8a29c91137.png?x-oss-process=image/resize,w_416,h_234

Spring 源码阅读环境的搭建

用户头像
程序员小航2020 年 11 月 27 日

本文记录了 Spring 源码环境的搭建方式,以及踩过的那些坑!​当前版本:5.3.2-SNAPSHOT。

https://static001.geekbang.org/infoq/66/669ad7085c35d6094d803c0e912a1b92.jpeg?x-oss-process=image/resize,w_416,h_234

一个技术总监的忠告:精通那么多技术,你为何还是受不到重用?

用户头像
四猿外2020 年 11 月 11 日

老田升职了,年薪涨到了百万级别! 这是大刘在加班搞技术攻坚的时候,听别的同事聊了那么一嘴。

https://static001.geekbang.org/infoq/85/85b0cdcd0fc385a1383f68d5fd44a3c1.png?x-oss-process=image/resize,w_416,h_234

Netty 源码解析 -- PoolSubpage 实现原理

用户头像
binecy2020 年 11 月 8 日

前面文章说了PoolChunk如何管理Normal内存块,本文分享PoolSubpage如何管理Small内存块。

https://static001.geekbang.org/infoq/71/71577b876dc0a7bd224ff185dab67396.png?x-oss-process=image/resize,w_416,h_234

写时复制集合 —— CopyOnWriteArrayList

用户头像
程序员小航2020 年 10 月 31 日

JUC 下面还有一个系列的类,都是 CopyOnWriteXXX ,意思是写时复制,这个究竟是怎么回事?那就以 CopyOnWriteArrayList 为切入点,一起了解写时复制是怎么回事?

https://static001.geekbang.org/infoq/5c/5c6487d1b379f73ba49ca2f7edf9d760.jpeg?x-oss-process=image/resize,w_416,h_234

非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue

用户头像
程序员小航2020 年 10 月 26 日

JUC 下面的相关源码继续往下阅读,这就看到了非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue,来一起看看吧。

https://static001.geekbang.org/infoq/4e/4e4042452b271327748c10af6a370a43.jpeg?x-oss-process=image/resize,w_416,h_234

Netty 源码解析 -- 客户端启动过程

用户头像
binecy2020 年 10 月 15 日

上一篇文章分享了Netty服务端启动过程,本文继续分享Netty客户端启动过程。

https://static001.geekbang.org/infoq/f7/f7bfc525a1adf66f1b5780d4ddb041b3.jpeg?x-oss-process=image/resize,w_416,h_234

基于链表的有界阻塞队列 —— LinkedBlockingQueue

用户头像
程序员小航2020 年 10 月 4 日

上一节看了基于数据的有界阻塞队列 ArrayBlockingQueue 的源码,通过阅读源码了解到在 ArrayBlockingQueue 中入队列和出队列操作都是用了 ReentrantLock 来保证线程安全。下面咱们看另一种有界阻塞队列:LinkedBlockingQueue。

https://static001.geekbang.org/infoq/93/93f30b3729af7c6bf9628c3fd631f1e7.jpeg?x-oss-process=image/resize,w_416,h_234

【荒于嬉】common pool2 源码阅读纪要

用户头像
luojiahu2020 年 10 月 3 日

common pool2 通过后台定时任务维护池中对象,使其满足用户配置的空闲对象个数要求。

https://static001.geekbang.org/infoq/72/725b933e3b4498d57b5da49879c40b5b.jpeg?x-oss-process=image/resize,w_416,h_234

AQS 都看完了,Condition 原理可不能少!

用户头像
程序员小航2020 年 10 月 1 日

在介绍 AQS 时,其中有一个内部类叫做 ConditionObject,当时并没有进行介绍,并且在后续阅读源码时,会发现很多地方用到了 Condition ,这时就会很诧异,这个 Condition 到底有什么作用?。

https://static001.geekbang.org/infoq/b3/b340a7c223b2f35cb09b883a15fbf970.jpeg?x-oss-process=image/resize,w_416,h_234

基于数组的有界阻塞队列 —— ArrayBlockingQueue

用户头像
程序员小航2020 年 9 月 28 日

在阅读完和 AQS 相关的锁以及同步辅助器之后,来一起阅读 JUC 下的和队列相关的源码。先从第一个开始:ArrayBlockingQueue。

https://static001.geekbang.org/infoq/a1/a11f1d3ed1b9f4731462a475ea1cde84.jpeg?x-oss-process=image/resize,w_416,h_234

使用递增计数器的线程同步工具 —— 信号量,它的原理是什么样子的?

用户头像
程序员小航2020 年 9 月 21 日

在 JUC 中线程同步器除了 CountDownLatch 和 CycleBarrier ,还有一个叫做 Semaphore (信号量),同样是基于 AQS 实现的。下面来看看信号量的内部原理。

https://static001.geekbang.org/infoq/44/44c71d4d7f22e73f7632bb8d77f79b02.png?x-oss-process=image/resize,w_416,h_234

Nacos 如何实现服务自动注册

用户头像
编号945302020 年 9 月 20 日

接着上次的说,Nacos问题的分析。这次就来分享一下自己的分析方法。以及如何利用Spring事件完成服务注册。

https://static001.geekbang.org/infoq/b4/b4f85662f718de5f455de59ba80f4227.jpeg?x-oss-process=image/resize,w_416,h_234

CountDownLatch 瞬间炸裂!同基于 AQS,凭什么 CyclicBarrier 可以这么秀?

用户头像
程序员小航2020 年 9 月 14 日

看完 CountDownLatch 正准备表示一番,突然看到了一个 CyclicBarrier —— 回环屏障。沃特?回环还屏障?说比 CountDownLatch 要多一个回环,那咱可得瞧一瞧,看一看了!

https://static001.geekbang.org/infoq/5f/5f46c8d3e9aa5a25efed825dee1aa556.jpeg?x-oss-process=image/resize,w_416,h_234

快来看看!AQS 和 CountDownLatch 有怎么样的关系?

用户头像
程序员小航2020 年 9 月 7 日

CountDownLatch 一个同步辅助工具,同样是基于 AQS 实现,本篇文件主要是介绍 CountDownLatch 的使用,以及源码。

https://static001.geekbang.org/infoq/9e/9e3107a6ebd8b9e8acf447175871ed31.jpeg?x-oss-process=image/resize,w_416,h_234

JDK 中居然也有反模式接口常量

用户头像
看山2020 年 8 月 16 日

其实上面提到的JDK源码也能看出,从源码中学习,也得抱有怀疑的态度,毕竟,一个匠人也是从菜鸟成长起来的。

https://static001.geekbang.org/infoq/3b/3b71ac488548d19bbb2d7deee45fdc53.png?x-oss-process=image/resize,w_416,h_234

图文讲解 AQS ,一起看看 AQS 的源码……(图文较长)

用户头像
程序员小航2020 年 8 月 9 日

AbstractQueuedSynchronizer 抽象队列同步器,简称 AQS 。是在 JUC 包下面一个非常重要的基础组件,JUC 包下面的并发锁 ReentrantLock CountDownLatch 等都是基于 AQS 实现的。所以想进一步研究锁的底层原理,非常有必要先了解 AQS 的原理。

ArrayList 源码阅读

用户头像
慌张而黑糖2020 年 7 月 9 日

对于ArrayList源码,我是初次阅读,可能有很多地方理解不正确,如果有错的话还请大家多多指教。

https://static001.geekbang.org/infoq/76/76d4e6fb79a9ec9ec46f76dc45ed70ae.jpeg?x-oss-process=image/resize,w_416,h_234

[深入理解 Redis]读取 RDB 文件

用户头像
老胡爱分享2020 年 6 月 27 日

在做一个解析rdb文件的功能,途中遇到了一些问题,也解决了一些问题。具体为什么要做这件事情之后再详谈,本次主要想聊聊遇到的开始处理文件时遇到的第一个难题:理解RDB文件的协议、如何读取二进制文件。

源码阅读_源码阅读资料文章-InfoQ写作平台