@ -1,5 +1,6 @@
# 互联网公司常用框架源码赏析
# 互联网公司常用框架源码赏析
[](https://github.com/doocs/source-code-hunter/blob/master/LICENSE)
[](https://github.com/doocs/source-code-hunter/blob/main/LICENSE)
[](https://github.com/doocs/source-code-hunter/stargazers)
[](https://github.com/doocs/source-code-hunter/stargazers)
[](https://github.com/doocs/source-code-hunter/graphs/contributors)
[](https://github.com/doocs/source-code-hunter/graphs/contributors)
[](https://github.com/doocs/source-code-hunter/labels/help%20wanted)
[](https://github.com/doocs/source-code-hunter/labels/help%20wanted)
@ -10,52 +11,52 @@
加入我们,一起通读互联网行业主流框架及中间件源码,成为强大的 “源码猎人”,目前开放的有 **Spring 全家桶** 、**Mybatis**、**Netty**、**Dubbo 框架**,及 **Redis** 、**Tomcat** 中间件等,让我们一起开拓新的领地,揭开这些源码的神秘面纱。
加入我们,一起通读互联网行业主流框架及中间件源码,成为强大的 “源码猎人”,目前开放的有 **Spring 全家桶** 、**Mybatis**、**Netty**、**Dubbo 框架**,及 **Redis** 、**Tomcat** 中间件等,让我们一起开拓新的领地,揭开这些源码的神秘面纱。
本项目主要用于记录框架及中间件源码的阅读经验、个人理解及解析,希望能够使阅读源码变成一件简单有趣,且有价值的事情,抽空更新中... (如果本项目对您有帮助, 请watch、star、fork 素质三连一波,鼓励一下作者,谢谢)
本项目主要用于记录框架及中间件源码的阅读经验、个人理解及解析,希望能够使阅读源码变成一件简单有趣,且有价值的事情,抽空更新中... (如果本项目对您有帮助,请 watch、star、fork 素质三连一波,鼓励一下作者,谢谢)
* Netlify: https://schunter.netlify.app
- Netlify: https://schunter.netlify.app
* Gitee Pages: https://doocs.gitee.io/source-code-hunter
- Gitee Pages: https://doocs.gitee.io/source-code-hunter
* GitHub Pages: https://doocs.github.io/source-code-hunter
- GitHub Pages: https://doocs.github.io/source-code-hunter
## Spring 系列
## Spring 系列
### IoC 容器
### IoC 容器
* [BeanDefinition 的资源定位过程 ](/docs/Spring/IoC/1、BeanDefinition的资源定位过程.md )
- [BeanDefinition 的资源定位过程 ](/docs/Spring/IoC/1、BeanDefinition的资源定位过程.md )
* [将 bean 解析封装成 BeanDefinition ](/docs/Spring/IoC/2、将bean解析封装成BeanDefinition.md )
- [将 bean 解析封装成 BeanDefinition ](/docs/Spring/IoC/2、将bean解析封装成BeanDefinition.md )
* [将 BeanDefinition 注册进 IoC 容器 ](/docs/Spring/IoC/3、将BeanDefinition注册进IoC容器.md )
- [将 BeanDefinition 注册进 IoC 容器 ](/docs/Spring/IoC/3、将BeanDefinition注册进IoC容器.md )
* [依赖注入(DI) ](/docs/Spring/IoC/4、依赖注入(DI ).md )
- [依赖注入(DI) ](</docs/Spring/IoC/4、依赖注入(DI ).md> )
* [BeanPostProcessor ](/docs/Spring/IoC/BeanPostProcessor.md )
- [BeanPostProcessor ](/docs/Spring/IoC/BeanPostProcessor.md )
* [Spring BeanFactory 源码解析](/docs/Spring/clazz/Spring-beanFactory.md )
- [Spring BeanFactory 源码解析](/docs/Spring/clazz/Spring-beanFactory.md )
### AOP
### AOP
* [AOP 源码实现及分析 ](/docs/Spring/AOP/AOP源码实现及分析.md )
- [AOP 源码实现及分析 ](/docs/Spring/AOP/AOP源码实现及分析.md )
* [JDK 动态代理的实现原理解析 ](/docs/Spring/AOP/JDK动态代理的实现原理解析.md )
- [JDK 动态代理的实现原理解析 ](/docs/Spring/AOP/JDK动态代理的实现原理解析.md )
* [Spring AOP 如何生效(Spring AOP 标签解析)](/docs/Spring/AOP/Spring-Aop如何生效.md )
- [Spring AOP 如何生效(Spring AOP 标签解析)](/docs/Spring/AOP/Spring-Aop如何生效.md )
### SpringMVC
### SpringMVC
* [IoC容器 在 Web 环境 中的启动](/docs/Spring/SpringMVC/IoC容器在Web环境中的启动.md )
- [IoC 容器 在 Web 环境 中的启动](/docs/Spring/SpringMVC/IoC容器在Web环境中的启动.md )
* [SpringMVC 的设计与实现 ](/docs/Spring/SpringMVC/SpringMVC的设计与实现.md )
- [SpringMVC 的设计与实现 ](/docs/Spring/SpringMVC/SpringMVC的设计与实现.md )
* [SpringMVC 跨域解析 ](/docs/Spring/SpringMVC/SpringMVC-CROS.md )
- [SpringMVC 跨域解析 ](/docs/Spring/SpringMVC/SpringMVC-CROS.md )
* [Spring-MVC-HandlerMapping ](/docs/Spring/mvc/Spring-MVC-HandlerMapping.md )
- [Spring-MVC-HandlerMapping ](/docs/Spring/mvc/Spring-MVC-HandlerMapping.md )
* [Spring-mvc-MappingRegistry ](/docs/Spring/mvc/Spring-mvc-MappingRegistry.md )
- [Spring-mvc-MappingRegistry ](/docs/Spring/mvc/Spring-mvc-MappingRegistry.md )
### SpringJDBC
### SpringJDBC
* 努力编写中...
- 努力编写中...
### Spring 事务
### Spring 事务
* [Spring 与事务处理 ](/docs/Spring/SpringTransaction/Spring与事务处理.md )
- [Spring 与事务处理 ](/docs/Spring/SpringTransaction/Spring与事务处理.md )
* [Spring 声明式事务处理 ](/docs/Spring/SpringTransaction/Spring声明式事务处理.md )
- [Spring 声明式事务处理 ](/docs/Spring/SpringTransaction/Spring声明式事务处理.md )
* [Spring 事务处理的设计与实现 ](/docs/Spring/SpringTransaction/Spring事务处理的设计与实现.md )
- [Spring 事务处理的设计与实现 ](/docs/Spring/SpringTransaction/Spring事务处理的设计与实现.md )
* [Spring 事务管理器的设计与实现 ](/docs/Spring/SpringTransaction/Spring事务管理器的设计与实现.md )
- [Spring 事务管理器的设计与实现 ](/docs/Spring/SpringTransaction/Spring事务管理器的设计与实现.md )
* [Spring 事务解析 ](/docs/Spring/TX/Spring-transaction.md )
- [Spring 事务解析 ](/docs/Spring/TX/Spring-transaction.md )
### Spring 源码故事(瞎编版)
### Spring 源码故事(瞎编版)
* [面筋哥 IoC 容器的一天(上) ]( /docs/Spring/Spring源码故事( 瞎编版) /面筋哥IoC容器的一天(上).md)
- [面筋哥 IoC 容器的一天(上) ](< /docs/Spring/Spring源码故事( 瞎编版) /面筋哥IoC容器的一天(上).md> )
### Spring 类解析
### Spring 类解析
@ -88,208 +89,225 @@
* [Spring-Parser ](/docs/Spring/clazz/format/Spring-Parser.md )
* [Spring-Parser ](/docs/Spring/clazz/format/Spring-Parser.md )
* [Spring-Printer ](/docs/Spring/clazz/format/Spring-Printer.md )
* [Spring-Printer ](/docs/Spring/clazz/format/Spring-Printer.md )
### Spring5 新特性
### Spring5 新特性
* [Spring5-spring.components 解析](/docs/Spring/Spring5新特性/Spring-spring-components.md )
- [Spring5-spring.components 解析 ](/docs/Spring/Spring5新特性/Spring-spring-components.md )
### Spring RMI
### Spring RMI
* [Spring RMI ](/docs/Spring/RMI/Spring-RMI.md )
- [Spring RMI ](/docs/Spring/RMI/Spring-RMI.md )
### Spring Message
### Spring Message
* [Spring EnableJMS ](/docs/Spring/message/Spring-EnableJms.md )
- [Spring EnableJMS ](/docs/Spring/message/Spring-EnableJms.md )
* [Spring JmsTemplate ](/docs/Spring/message/Spring-JmsTemplate.md )
- [Spring JmsTemplate ](/docs/Spring/message/Spring-JmsTemplate.md )
* [Spring MessageConverter ](/docs/Spring/message/Spring-MessageConverter.md )
- [Spring MessageConverter ](/docs/Spring/message/Spring-MessageConverter.md )
### SpringBoot
### SpringBoot
* [SpringBoot run 方法解析](/docs/SpringBoot/Spring-Boot-Run.md )
- [SpringBoot run 方法解析](/docs/SpringBoot/Spring-Boot-Run.md )
* [SpringBoot 配置加载解析 ](/docs/SpringBoot/SpringBoot-application-load.md )
- [SpringBoot 配置加载解析 ](/docs/SpringBoot/SpringBoot-application-load.md )
* [SpringBoot 自动装配 ](/docs/SpringBoot/SpringBoot-自动装配.md )
- [SpringBoot 自动装配 ](/docs/SpringBoot/SpringBoot-自动装配.md )
* [SpringBoot ConfigurationProperties ](/docs/SpringBoot/SpringBoot-ConfigurationProperties.md )
- [SpringBoot ConfigurationProperties ](/docs/SpringBoot/SpringBoot-ConfigurationProperties.md )
* [SpringBoot 日志系统 ](/docs/SpringBoot/SpringBoot-LogSystem.md )
- [SpringBoot 日志系统 ](/docs/SpringBoot/SpringBoot-LogSystem.md )
* [SpringBoot ConditionalOnBean ](/docs/SpringBoot/SpringBoot-ConditionalOnBean.md )
- [SpringBoot ConditionalOnBean ](/docs/SpringBoot/SpringBoot-ConditionalOnBean.md )
## MyBatis
## MyBatis
### 基础支持层
### 基础支持层
* [反射工具箱和 TypeHandler 系列 ](docs/Mybatis/基础支持层/1、反射工具箱和TypeHandler系列.md )
- [反射工具箱和 TypeHandler 系列 ](docs/Mybatis/基础支持层/1、反射工具箱和TypeHandler系列.md )
* [DataSource 及 Transaction 模块 ](docs/Mybatis/基础支持层/2、DataSource及Transaction模块.md )
- [DataSource 及 Transaction 模块 ](docs/Mybatis/基础支持层/2、DataSource及Transaction模块.md )
* [binding 模块 ](docs/Mybatis/基础支持层/3、binding模块.md )
- [binding 模块 ](docs/Mybatis/基础支持层/3、binding模块.md )
* [缓存模块 ](docs/Mybatis/基础支持层/4、缓存模块.md )
- [缓存模块 ](docs/Mybatis/基础支持层/4、缓存模块.md )
### 核心处理层
### 核心处理层
* [MyBatis 初始化 ](docs/Mybatis/核心处理层/1、MyBatis初始化.md )
- [MyBatis 初始化 ](docs/Mybatis/核心处理层/1、MyBatis初始化.md )
* [SqlNode 和 SqlSource ](docs/Mybatis/核心处理层/2、SqlNode和SqlSource.md )
- [SqlNode 和 SqlSource ](docs/Mybatis/核心处理层/2、SqlNode和SqlSource.md )
* [ResultSetHandler ](docs/Mybatis/核心处理层/3、ResultSetHandler.md )
- [ResultSetHandler ](docs/Mybatis/核心处理层/3、ResultSetHandler.md )
* [StatementHandler ](docs/Mybatis/核心处理层/4、StatementHandler.md )
- [StatementHandler ](docs/Mybatis/核心处理层/4、StatementHandler.md )
* [Executor 组件 ](docs/Mybatis/核心处理层/5、Executor组件.md )
- [Executor 组件 ](docs/Mybatis/核心处理层/5、Executor组件.md )
* [SqlSession 组件 ](docs/Mybatis/核心处理层/6、SqlSession组件.md )
- [SqlSession 组件 ](docs/Mybatis/核心处理层/6、SqlSession组件.md )
### 类解析
### 类解析
* [Mybatis-Cache ](/docs/Mybatis/基础支持层/Mybatis-Cache.md )
- [Mybatis-Cache ](/docs/Mybatis/基础支持层/Mybatis-Cache.md )
* [Mybatis-log ](/docs/Mybatis/基础支持层/Mybatis-log.md )
- [Mybatis-log ](/docs/Mybatis/基础支持层/Mybatis-log.md )
* [Mybatis-Reflector ](/docs/Mybatis/基础支持层/Mybatis-Reflector.md )
- [Mybatis-Reflector ](/docs/Mybatis/基础支持层/Mybatis-Reflector.md )
* [Mybatis-Alias ](/docs/Mybatis/核心处理层/Mybatis-Alias.md )
- [Mybatis-Alias ](/docs/Mybatis/核心处理层/Mybatis-Alias.md )
* [Mybatis-Cursor ](/docs/Mybatis/核心处理层/Mybatis-Cursor.md )
- [Mybatis-Cursor ](/docs/Mybatis/核心处理层/Mybatis-Cursor.md )
* [Mybatis-DataSource ](/docs/Mybatis/核心处理层/Mybatis-DataSource.md )
- [Mybatis-DataSource ](/docs/Mybatis/核心处理层/Mybatis-DataSource.md )
* [Mybatis-DyanmicSqlSourcce ](/docs/Mybatis/核心处理层/Mybatis-DyanmicSqlSourcce.md )
- [Mybatis-DyanmicSqlSourcce ](/docs/Mybatis/核心处理层/Mybatis-DyanmicSqlSourcce.md )
* [Mybatis-MapperMethod ](/docs/Mybatis/核心处理层/Mybatis-MapperMethod.md )
- [Mybatis-MapperMethod ](/docs/Mybatis/核心处理层/Mybatis-MapperMethod.md )
* [Mybatis-MetaObject ](/docs/Mybatis/核心处理层/Mybatis-MetaObject.md )
- [Mybatis-MetaObject ](/docs/Mybatis/核心处理层/Mybatis-MetaObject.md )
* [Mybatis-MethodSignature ](/docs/Mybatis/核心处理层/Mybatis-MethodSignature.md )
- [Mybatis-MethodSignature ](/docs/Mybatis/核心处理层/Mybatis-MethodSignature.md )
* [Mybatis-ObjectWrapper ](/docs/Mybatis/核心处理层/Mybatis-ObjectWrapper.md )
- [Mybatis-ObjectWrapper ](/docs/Mybatis/核心处理层/Mybatis-ObjectWrapper.md )
* [Mybatis-ParamNameResolver ](/docs/Mybatis/核心处理层/Mybatis-ParamNameResolver.md )
- [Mybatis-ParamNameResolver ](/docs/Mybatis/核心处理层/Mybatis-ParamNameResolver.md )
* [Mybatis-SqlCommand ](/docs/Mybatis/核心处理层/Mybatis-SqlCommand.md )
- [Mybatis-SqlCommand ](/docs/Mybatis/核心处理层/Mybatis-SqlCommand.md )
* [Mybats-GenericTokenParser ](/docs/Mybatis/核心处理层/Mybats-GenericTokenParser.md )
- [Mybats-GenericTokenParser ](/docs/Mybatis/核心处理层/Mybats-GenericTokenParser.md )
## Netty
## Netty
### 网络 IO 技术基础
### 网络 IO 技术基础
* [把被说烂的 BIO、NIO、AIO 再从头到尾扯一遍 ](docs/Netty/IOTechnologyBase/把被说烂的BIO、NIO、AIO再从头到尾扯一遍.md )
* [IO模型 ](docs/Netty/IOTechnologyBase/IO模型.md )
* [四种IO编程及对比 ](docs/Netty/IOTechnologyBase/四种IO编程及对比.md )
### JDK1.8 NIO包 核心组件源码剖析
- [把被说烂的 BIO、NIO、AIO 再从头到尾扯一遍 ](docs/Netty/IOTechnologyBase/把被说烂的BIO、NIO、AIO再从头到尾扯一遍.md )
* [Selector、SelectionKey及Channel组件 ](docs/Netty/IOTechnologyBase/Selector、SelectionKey及Channel组件.md )
- [IO 模型 ](docs/Netty/IOTechnologyBase/IO模型.md )
- [四种 IO 编程及对比 ](docs/Netty/IOTechnologyBase/四种IO编程及对比.md )
### JDK1.8 NIO 包 核心组件源码剖析
- [Selector、SelectionKey 及 Channel 组件 ](docs/Netty/IOTechnologyBase/Selector、SelectionKey及Channel组件.md )
### Netty 粘拆包及解决方案
### Netty 粘拆包及解决方案
* [TCP粘拆包问题及Netty中的解决方案 ](docs/Netty/TCP粘拆包/TCP粘拆包问题及Netty中的解决方案.md )
- [TCP 粘拆包问题及 Netty 中的解决方案 ](docs/Netty/TCP粘拆包/TCP粘拆包问题及Netty中的解决方案.md )
### Netty 多协议开发
### Netty 多协议开发
* [基于HTTP协议的Netty开发 ](docs/Netty/Netty多协议开发/基于HTTP协议的Netty开发.md )
* [基于WebSocket协议的Netty开发 ](docs/Netty/Netty多协议开发/基于WebSocket协议的Netty开发.md )
- [基于 HTTP 协议的 Netty 开发 ](docs/Netty/Netty多协议开发/基于HTTP协议的Netty开发.md )
* [基于自定义协议的Netty开发 ](docs/Netty/Netty多协议开发/基于自定义协议的Netty开发.md )
- [基于 WebSocket 协议的 Netty 开发 ](docs/Netty/Netty多协议开发/基于WebSocket协议的Netty开发.md )
- [基于自定义协议的 Netty 开发 ](docs/Netty/Netty多协议开发/基于自定义协议的Netty开发.md )
### 基于 Netty 开发服务端及客户端
### 基于 Netty 开发服务端及客户端
* [基于Netty的服务端开发 ](docs/Netty/基于Netty开发服务端及客户端/基于Netty的服务端开发.md )
* [基于Netty的客户端开发 ](docs/Netty/基于Netty开发服务端及客户端/基于Netty的客户端开发.md )
- [基于 Netty 的服务端开发 ](docs/Netty/基于Netty开发服务端及客户端/基于Netty的服务端开发.md )
- [基于 Netty 的客户端开发 ](docs/Netty/基于Netty开发服务端及客户端/基于Netty的客户端开发.md )
### Netty 主要组件的源码分析
### Netty 主要组件的源码分析
* [ByteBuf组件 ](docs/Netty/Netty主要组件源码分析/ByteBuf组件.md )
* [Channel组件 和 Unsafe组件 ](docs/Netty/Netty主要组件源码分析/Channel和Unsafe组件.md )
- [ByteBuf 组件 ](docs/Netty/Netty主要组件源码分析/ByteBuf组件.md )
* [EventLoop 组件 ](docs/Netty/Netty主要组件源码分析/EventLoop组件.md )
- [Channel 组件 和 Unsafe 组件 ](docs/Netty/Netty主要组件源码分析/Channel和Unsafe组件.md )
* [ChannelPipeline 和 ChannelHandler组件 ](docs/Netty/Netty主要组件源码分析/ChannelPipeline和ChannelHandler组件.md )
- [EventLoop 组件 ](docs/Netty/Netty主要组件源码分析/EventLoop组件.md )
* [Future 和 Promise组件 ](docs/Netty/Netty主要组件源码分析/Future和Promise组件.md )
- [ChannelPipeline 和 ChannelHandler 组件 ](docs/Netty/Netty主要组件源码分析/ChannelPipeline和ChannelHandler组件.md )
- [Future 和 Promise 组件 ](docs/Netty/Netty主要组件源码分析/Future和Promise组件.md )
### Netty 高级特性
### Netty 高级特性
* [Netty 架构设计 ](docs/Netty/AdvancedFeaturesOfNetty/Netty架构设计.md )
* [Netty 高性能之道 ](docs/Netty/AdvancedFeaturesOfNetty/Netty高性能之道.md )
- [Netty 架构设计 ](docs/Netty/AdvancedFeaturesOfNetty/Netty架构设计.md )
- [Netty 高性能之道 ](docs/Netty/AdvancedFeaturesOfNetty/Netty高性能之道.md )
### Netty 技术细节源码分析
### Netty 技术细节源码分析
* [FastThreadLocal源码分析 ](docs/Netty/Netty技术细节源码分析/FastThreadLocal源码分析.md )
* [Recycler对象池原理分析 ](docs/Netty/Netty技术细节源码分析/Recycler对象池原理分析.md )
- [FastThreadLocal 源码分析 ](docs/Netty/Netty技术细节源码分析/FastThreadLocal源码分析.md )
* [MpscLinkedQueue队列原理分析 ](docs/Netty/Netty技术细节源码分析/MpscLinkedQueue队列原理分析.md )
- [Recycler 对象池原理分析 ](docs/Netty/Netty技术细节源码分析/Recycler对象池原理分析.md )
* [HashedWheelTimer时间轮原理分析 ](docs/Netty/Netty技术细节源码分析/HashedWheelTimer时间轮原理分析.md )
- [MpscLinkedQueue 队列原理分析 ](docs/Netty/Netty技术细节源码分析/MpscLinkedQueue队列原理分析.md )
* [ByteBuf的内存泄漏原因与检测原理 ](docs/Netty/Netty技术细节源码分析/ByteBuf的内存泄漏原因与检测原理.md )
- [HashedWheelTimer 时间轮原理分析 ](docs/Netty/Netty技术细节源码分析/HashedWheelTimer时间轮原理分析.md )
- [HashedWheelTimer & schedule ](docs/Netty/Netty技术细节源码分析/HashedWheelTimer&schedule.md )
- [ByteBuf 的内存泄漏原因与检测原理 ](docs/Netty/Netty技术细节源码分析/ByteBuf的内存泄漏原因与检测原理.md )
- [内存池之 PoolChunk 设计与实现 ](docs/Netty/Netty技术细节源码分析/内存池之PoolChunk设计与实现.md )
- [内存池之从内存池申请内存 ](docs/Netty/Netty技术细节源码分析/内存池之从内存池申请内存.md )
## Dubbo
## Dubbo
### 架构设计
### 架构设计
* [Dubbo 整体架构](docs/Dubbo/architectureDesign/Dubbo整体架构.md )
- [Dubbo 整体架构](docs/Dubbo/architectureDesign/Dubbo整体架构.md )
### SPI机制
### SPI 机制
* [Dubbo与Java的SPI 机制](docs/Dubbo/SPI/Dubbo与Java的SPI机制.md )
- [Dubbo 与 Java 的 SPI 机制](docs/Dubbo/SPI/Dubbo与Java的SPI机制.md )
### 注册中心
### 注册中心
* [Dubbo 注册中心模块简析](docs/Dubbo/registry/Dubbo注册中心模块简析.md )
- [Dubbo 注册中心模块简析](docs/Dubbo/registry/Dubbo注册中心模块简析.md )
* [注册中心的Zookeeper 实现](docs/Dubbo/registry/注册中心的Zookeeper实现.md )
- [注册中心的 Zookeeper 实现](docs/Dubbo/registry/注册中心的Zookeeper实现.md )
### 远程通信
### 远程通信
* [Dubbo 远程通信模块简析](docs/Dubbo/remote/Dubbo远程通信模块简析.md )
- [Dubbo 远程通信模块简析](docs/Dubbo/remote/Dubbo远程通信模块简析.md )
* [Transport 组件](docs/Dubbo/remote/Transport组件.md )
- [Transport 组件](docs/Dubbo/remote/Transport组件.md )
* [Exchange 组件](docs/Dubbo/remote/Exchange组件.md )
- [Exchange 组件](docs/Dubbo/remote/Exchange组件.md )
* [Buffer 组件](docs/Dubbo/remote/Buffer组件.md )
- [Buffer 组件](docs/Dubbo/remote/Buffer组件.md )
* [基于Netty 实现远程通信](docs/Dubbo/remote/基于Netty实现远程通信.md )
- [基于 Netty 实现远程通信](docs/Dubbo/remote/基于Netty实现远程通信.md )
* [基于HTTP 实现远程通信](docs/Dubbo/remote/基于HTTP实现远程通信.md )
- [基于 HTTP 实现远程通信](docs/Dubbo/remote/基于HTTP实现远程通信.md )
### RPC
### RPC
* [RPC 模块简析](docs/Dubbo/RPC/RPC模块简析.md )
- [RPC 模块简析](docs/Dubbo/RPC/RPC模块简析.md )
* [Protocol 组件](docs/Dubbo/RPC/Protocol组件.md )
- [Protocol 组件](docs/Dubbo/RPC/Protocol组件.md )
* [Proxy 组件](docs/Dubbo/RPC/Proxy组件.md )
- [Proxy 组件](docs/Dubbo/RPC/Proxy组件.md )
* [Dubbo 协议](docs/Dubbo/RPC/Dubbo协议.md )
- [Dubbo 协议](docs/Dubbo/RPC/Dubbo协议.md )
* [Hessian 协议](docs/Dubbo/RPC/Hessian协议.md )
- [Hessian 协议](docs/Dubbo/RPC/Hessian协议.md )
### 集群
### 集群
* [Dubbo 集群模块简析](docs/Dubbo/cluster/Dubbo集群模块简析.md )
- [Dubbo 集群模块简析](docs/Dubbo/cluster/Dubbo集群模块简析.md )
* [负载均衡 ](docs/Dubbo/cluster/负载均衡.md )
- [负载均衡 ](docs/Dubbo/cluster/负载均衡.md )
* [集群容错 ](docs/Dubbo/cluster/集群容错.md )
- [集群容错 ](docs/Dubbo/cluster/集群容错.md )
* [mock 与服务降级](docs/Dubbo/cluster/mock与服务降级.md )
- [mock 与服务降级](docs/Dubbo/cluster/mock与服务降级.md )
## Tomcat
## Tomcat
### Servlet 与 Servlet容器
### Servlet 与 Servlet 容器
* [servlet-api 源码赏析 ](docs/Tomcat/servlet-api源码赏析.md )
- [servlet-api 源码赏析 ](docs/Tomcat/servlet-api源码赏析.md )
* [一个简单的Servlet 容器](docs/Tomcat/一个简单的servlet容器代码设计.md )
- [一个简单的 Servlet 容器](docs/Tomcat/一个简单的servlet容器代码设计.md )
* [Servlet 容器详解](docs/Tomcat/servlet容器详解.md )
- [Servlet 容器详解](docs/Tomcat/servlet容器详解.md )
### Web 容器
### Web 容器
* [一个简单的Web 服务器](docs/Tomcat/一个简单的Web服务器代码设计.md )
- [一个简单的 Web 服务器](docs/Tomcat/一个简单的Web服务器代码设计.md )
## Redis
## Redis
* [深挖 Redis 6.0 源码——SDS ](docs/Redis/redis-sds.md )
- [深挖 Redis 6.0 源码——SDS ](docs/Redis/redis-sds.md )
## Nacos
## Nacos
* [nacos 服务注册 ](docs/nacos/nacos-discovery.md )
- [nacos 服务注册 ](docs/nacos/nacos-discovery.md )
## Sentinel
- [sentinel 时间窗口实现 ](docs/Sentinel/Sentinel时间窗口的实现.md )
## 番外篇( JDK 1.8)
## 番外篇( JDK 1.8)
### 基础类库
### 基础类库
* [String类 源码赏析 ](docs/JDK/basic/String.md )
* [Thread类 源码赏析 ](docs/JDK/basic/Thread.md )
- [String 类 源码赏析 ](docs/JDK/basic/String.md )
* [ThreadLocal类 源码赏析 ](docs/JDK/basic/ThreadLocal.md )
- [Thread 类 源码赏析 ](docs/JDK/basic/Thread.md )
- [ThreadLocal 类 源码赏析 ](docs/JDK/basic/ThreadLocal.md )
### 集合
### 集合
* [HashMap类 源码赏析 ](docs/JDK/collection/HashMap.md )
* [ConcurrentHashMap类 源码赏析 ](docs/JDK/collection/ConcurrentHashMap.md )
- [HashMap 类 源码赏析 ](docs/JDK/collection/HashMap.md )
* [LinkedHashMap类 源码赏析 ](docs/JDK/collection/LinkedHashMap.md )
- [ConcurrentHashMap 类 源码赏析 ](docs/JDK/collection/ConcurrentHashMap.md )
* [ArrayList类 源码赏析 ](docs/JDK/collection/ArrayList.md )
- [LinkedHashMap 类 源码赏析 ](docs/JDK/collection/LinkedHashMap.md )
* [LinkedList类 源码赏析 ](docs/JDK/collection/LinkedList.md )
- [ArrayList 类 源码赏析 ](docs/JDK/collection/ArrayList.md )
* [HashSet类 源码赏析 ](docs/JDK/collection/HashSet.md )
- [LinkedList 类 源码赏析 ](docs/JDK/collection/LinkedList.md )
* [TreeSet类 源码赏析 ](docs/JDK/collection/TreeSet.md )
- [HashSet 类 源码赏析 ](docs/JDK/collection/HashSet.md )
- [TreeSet 类 源码赏析 ](docs/JDK/collection/TreeSet.md )
### 并发编程
### 并发编程
* [JUC并发包UML全量类图 ](docs/JDK/concurrentCoding/JUC并发包UML全量类图.md )
* [Executor 线程池组件 源码赏析 ](docs/JDK/concurrentCoding/Executor线程池组件.md )
- [JUC 并发包 UML 全量类图 ](docs/JDK/concurrentCoding/JUC并发包UML全量类图.md )
* [Lock 锁组件 源码赏析 ](docs/JDK/concurrentCoding/Lock锁组件.md )
- [Executor 线程池组件 源码赏析 ](docs/JDK/concurrentCoding/Executor线程池组件.md )
* [详解AbstractQueuedSynchronizer抽象类 ](docs/JDK/concurrentCoding/详解AbstractQueuedSynchronizer.md )
- [Lock 锁组件 源码赏析 ](docs/JDK/concurrentCoding/Lock锁组件.md )
* [CountdownLatch类 源码赏析 ](docs/JDK/concurrentCoding/CountdownLatch.md )
- [详解 AbstractQueuedSynchronizer 抽象类 ](docs/JDK/concurrentCoding/详解AbstractQueuedSynchronizer.md )
* [CyclicBarrier类 源码赏析 ](docs/JDK/concurrentCoding/CyclicBarrier.md )
- [CountdownLatch 类 源码赏析 ](docs/JDK/concurrentCoding/CountdownLatch.md )
* [Semaphore类 源码赏析 ](docs/JDK/concurrentCoding/Semaphore.md )
- [CyclicBarrier 类 源码赏析 ](docs/JDK/concurrentCoding/CyclicBarrier.md )
- [Semaphore 类 源码赏析 ](docs/JDK/concurrentCoding/Semaphore.md )
## 学习心得
## 学习心得
### 个人经验
### 个人经验
* [初级开发者应该从 Spring 源码中学什么 ](docs/LearningExperience/PersonalExperience/初级开发者应该从spring源码中学什么.md )
- [初级开发者应该从 Spring 源码中学什么 ](docs/LearningExperience/PersonalExperience/初级开发者应该从spring源码中学什么.md )
### 编码规范
### 编码规范
* [一个程序员的自我修养 ](docs/LearningExperience/EncodingSpecification/一个程序员的自我修养.md )
- [一个程序员的自我修养 ](docs/LearningExperience/EncodingSpecification/一个程序员的自我修养.md )
### 设计模式
### 设计模式
* [从 Spring 及 Mybatis 框架源码中学习设计模式(创建型) ]( docs/LearningExperience/DesignPattern/从Spring及Mybatis框架源码中学习设计模式(创建型).md)
- [从 Spring 及 Mybatis 框架源码中学习设计模式(创建型) ](< docs/LearningExperience/DesignPattern/从Spring及Mybatis框架源码中学习设计模式(创建型).md> )
* [从 Spring 及 Mybatis 框架源码中学习设计模式(行为型) ]( docs/LearningExperience/DesignPattern/从Spring及Mybatis框架源码中学习设计模式(行为型).md)
- [从 Spring 及 Mybatis 框架源码中学习设计模式(行为型) ](< docs/LearningExperience/DesignPattern/从Spring及Mybatis框架源码中学习设计模式(行为型).md> )
* [从 Spring 及 Mybatis 框架源码中学习设计模式(结构型) ]( docs/LearningExperience/DesignPattern/从Spring及Mybatis框架源码中学习设计模式(结构型).md)
- [从 Spring 及 Mybatis 框架源码中学习设计模式(结构型) ](< docs/LearningExperience/DesignPattern/从Spring及Mybatis框架源码中学习设计模式(结构型).md> )
### 多线程
### 多线程
* [Java 并发编程在各主流框架中的应用](docs/LearningExperience/ConcurrentProgramming/Java并发编程在各主流框架中的应用.md )
- [Java 并发编程在各主流框架中的应用](docs/LearningExperience/ConcurrentProgramming/Java并发编程在各主流框架中的应用.md )
---
---
@ -298,7 +316,7 @@
GitHub 技术社区 [Doocs ](https://github.com/doocs ),致力于打造一个内容完整、持续成长的互联网开发者学习生态圈!以下是 Doocs 的一些优秀项目,欢迎各位开发者朋友持续保持关注。
GitHub 技术社区 [Doocs ](https://github.com/doocs ),致力于打造一个内容完整、持续成长的互联网开发者学习生态圈!以下是 Doocs 的一些优秀项目,欢迎各位开发者朋友持续保持关注。
| # | 项目名称 | 项目描述 |
| # | 项目名称 | 项目描述 |
|---|---|---|
| --- | -------------------------------------- --------------------------- | -------------- ---------------------------------------------------------------------------------- |
| 1 | [advanced-java ](https://github.com/doocs/advanced-java ) | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 |
| 1 | [advanced-java ](https://github.com/doocs/advanced-java ) | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 |
| 2 | [leetcode ](https://github.com/doocs/leetcode ) | 多种编程语言实现 LeetCode、《剑指 Offer( 第 2 版)》、《程序员面试金典(第 6 版)》题解。 |
| 2 | [leetcode ](https://github.com/doocs/leetcode ) | 多种编程语言实现 LeetCode、《剑指 Offer( 第 2 版)》、《程序员面试金典(第 6 版)》题解。 |
| 3 | [source-code-hunter ](https://github.com/doocs/source-code-hunter ) | 互联网常用组件框架源码分析。 |
| 3 | [source-code-hunter ](https://github.com/doocs/source-code-hunter ) | 互联网常用组件框架源码分析。 |
@ -317,5 +335,6 @@ GitHub 技术社区 [Doocs](https://github.com/doocs),致力于打造一个内
<!-- ALL - CONTRIBUTORS - LIST: END -->
<!-- ALL - CONTRIBUTORS - LIST: END -->
## 请小码农喝杯coffee吧
## 请小码农喝杯 coffee 吧

