互联网公司常用框架源码赏析
“技术深度” 与 “技术广度”是对开发者来说最为重要的两个维度,本项目致力于从源码层面,剖析和挖掘互联网行业主流技术的底层实现原理,为广大开发者 “提升技术深度” 提供便利。
加入我们,一起通读互联网行业主流框架及中间件源码,成为强大的 “源码猎人”,目前开放的有 Spring 全家桶、Mybatis、Netty、Dubbo 框架,及 Redis、Tomcat 中间件等,让我们一起开拓新的领地,揭开这些源码的神秘面纱。
本项目主要用于记录框架及中间件源码的阅读经验、个人理解及解析,希望能够使阅读源码变成一件简单有趣,且有价值的事情,抽空更新中... (如果本项目对您有帮助,请 watch、star、fork 素质三连一波,鼓励一下作者,谢谢)
- Gitee Pages: https://doocs.gitee.io/source-code-hunter
- GitHub Pages: https://doocs.github.io/source-code-hunter
Spring 系列
IoC 容器
- BeanDefinition 的资源定位过程
- 将 bean 解析封装成 BeanDefinition
- 将 BeanDefinition 注册进 IoC 容器
- 依赖注入(DI)
- BeanFactoryPostProcessor
- BeanPostProcessor
- Spring BeanFactory 源码解析
- 循环依赖
AOP
SpringMVC
- IoC 容器 在 Web 环境 中的启动
- SpringMVC 的设计与实现
- SpringMVC 跨域解析
- Spring-MVC-HandlerMapping
- Spring-mvc-MappingRegistry
SpringJDBC
- 努力编写中...
Spring 事务
Spring 源码故事(瞎编版)
Spring 整体脉络
Spring 类解析
Spring5 新特性
Spring RMI
Spring Message
SpringBoot
- SpringBoot run 方法解析
- SpringBoot 配置加载解析
- SpringBoot 自动装配
- SpringBoot ConfigurationProperties
- SpringBoot 日志系统
- SpringBoot ConditionalOnBean
SpringSecurity
MyBatis
基础支持层
核心处理层
类解析
- Mybatis-Cache
- Mybatis-log
- Mybatis-Reflector
- Mybatis-Alias
- Mybatis-Cursor
- Mybatis-DataSource
- Mybatis-DyanmicSqlSourcce
- Mybatis-MapperMethod
- Mybatis-MetaObject
- Mybatis-MethodSignature
- Mybatis-ObjectWrapper
- Mybatis-ParamNameResolver
- Mybatis-SqlCommand
- Mybats-GenericTokenParser
Netty
网络 IO 技术基础
JDK1.8 NIO 包 核心组件源码剖析
Netty 粘拆包及解决方案
Netty 多协议开发
基于 Netty 开发服务端及客户端
Netty 主要组件的源码分析
- ByteBuf 组件
- Channel 组件 和 Unsafe 组件
- EventLoop 组件
- ChannelPipeline 和 ChannelHandler 组件
- Future 和 Promise 组件
Netty 高级特性
Netty 技术细节源码分析
- FastThreadLocal 源码分析
- Recycler 对象池原理分析
- MpscLinkedQueue 队列原理分析
- HashedWheelTimer 时间轮原理分析
- HashedWheelTimer & schedule
- ByteBuf 的内存泄漏原因与检测原理
- 内存池之 PoolChunk 设计与实现
- 内存池之从内存池申请内存
Dubbo
架构设计
SPI 机制
注册中心
远程通信
RPC
集群
Tomcat
Servlet 与 Servlet 容器
Web 容器
Redis
Nacos
Sentinel
RocketMQ
- RocketMQ NameServer 与 Broker 的通信
- RocketMQ 生产者启动流程
- RocketMQ 消息发送流程
- RocketMQ 消息发送存储流程
- RocketMQ MappedFile内存映射文件详解
- RocketMQ ConsumeQueue详解
- RocketMQ CommitLog详解
- RocketMQ IndexFile详解
- RocketMQ 消费者启动流程
- RocketMQ 消息拉取流程
- RocketMQ Broker 处理拉取消息请求流程
- RocketMQ 消息消费流程
番外篇(JDK 1.8)
基础类库
集合
- HashMap 类 源码赏析
- ConcurrentHashMap 类 源码赏析
- LinkedHashMap 类 源码赏析
- ArrayList 类 源码赏析
- LinkedList 类 源码赏析
- HashSet 类 源码赏析
- TreeSet 类 源码赏析
并发编程
- JUC 并发包 UML 全量类图
- Executor 线程池组件 源码赏析
- Lock 锁组件 源码赏析
- 详解 AbstractQueuedSynchronizer 抽象类
- CountdownLatch 类 源码赏析
- CyclicBarrier 类 源码赏析
- Semaphore 类 源码赏析
学习心得
个人经验
编码规范
设计模式
- 从 Spring 及 Mybatis 框架源码中学习设计模式(创建型)
- 从 Spring 及 Mybatis 框架源码中学习设计模式(行为型)
- 从 Spring 及 Mybatis 框架源码中学习设计模式(结构型)
多线程
Stars 趋势
Doocs 社区优质项目
GitHub 技术社区 Doocs,致力于打造一个内容完整、持续成长的互联网开发者学习生态圈!以下是 Doocs 的一些优秀项目,欢迎各位开发者朋友持续保持关注。
# | 项目 | 描述 | 热度 |
---|---|---|---|
1 | advanced-java | 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 | |
2 | leetcode | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解。 | |
3 | source-code-hunter | 互联网常用组件框架源码分析。 | |
4 | jvm | Java 虚拟机底层原理知识总结。 | |
5 | coding-interview | 代码面试题集,包括《剑指 Offer》、《编程之美》等。 | |
6 | md | 一款高度简洁的微信 Markdown 编辑器。 | |
7 | technical-books | 值得一看的技术书籍列表。 |
贡献者
感谢以下所有朋友对 GitHub 技术社区 Doocs 所做出的贡献,参与项目维护请戳这儿。
公众号
Doocs 技术社区旗下唯一公众号「Doocs 开源社区」,欢迎扫码关注,专注分享技术领域相关知识及行业最新资讯。当然,也可以加我个人微信(备注:GitHub),拉你进技术交流群。
![]() 公众平台 |
![]() 个人微信 |
关注「Doocs 开源社区」公众号,回复 PDF,即可获取 互联网 Java 工程师进阶知识完全扫盲 项目离线 PDF 文档(283 页精华),学习更加方便!