GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - DerekYRC/source-code-hunter: 😱 从源码层面,剖析挖掘互联网行业主流技术的底层实现原理,为广大开发者 “提升技术深度” 提供便利。目前开放 Spring 全家桶,Mybatis、Netty、Dubbo 框架,及 Redis、Tomcat 中间件等

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

590 Commits
590 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
docs
docs
 
 
images
images
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
index.html
index.html
 
 
vercel.json
vercel.json
 
 

Repository files navigation

互联网公司常用框架源码赏析

license stars contributors help-wanted issues PRs Welcome

“技术深度” 与 “技术广度”是对开发者来说最为重要的两个维度,本项目致力于从源码层面,剖析和挖掘互联网行业主流技术的底层实现原理,为广大开发者 “提升技术深度” 提供便利。

加入我们,一起通读互联网行业主流框架及中间件源码,成为强大的 “源码猎人”,目前开放的有 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

  • AOP 源码实现及分析
  • JDK 动态代理的实现原理解析
  • Spring AOP 如何生效(Spring AOP 标签解析)

SpringMVC

  • IoC 容器 在 Web 环境 中的启动
  • SpringMVC 的设计与实现
  • SpringMVC 跨域解析
  • Spring-MVC-HandlerMapping
  • Spring-mvc-MappingRegistry

SpringJDBC

  • 努力编写中...

Spring 事务

  • Spring 与事务处理
  • Spring 声明式事务处理
  • Spring 事务处理的设计与实现
  • Spring 事务管理器的设计与实现
  • Spring 事务解析

Spring 源码故事(瞎编版)

  • 面筋哥 IoC 容器的一天(上)

Spring 整体脉络

  • 16 张图解锁 Spring 的整体脉络

Spring 类解析

  • Spring 自定义标签解析

  • Spring Scan 包扫描

  • Spring 注解工具类

  • Spring 别名注册

  • Spring 标签解析类

  • Spring ApplicationListener

  • Spring messageSource

  • Spring 自定义属性解析器

  • Spring 排序工具

  • Spring-import 注解

  • Spring-定时任务

  • Spring StopWatch

  • Spring 元数据

  • Spring 条件接口

  • Spring MultiValueMap

  • Spring MethodOverride

  • Spring BeanDefinitionReaderUtils

  • Spring PropertyPlaceholderHelper

  • Spring PropertySource

  • Spring PlaceholderResolver

  • Spring-AnnotationFormatterFactory

  • Spring-Formatter

  • Spring-Parser

  • Spring-Printer

Spring5 新特性

  • Spring5-spring.components 解析

Spring RMI

  • Spring RMI

Spring Message

  • Spring EnableJMS
  • Spring JmsTemplate
  • Spring MessageConverter

SpringBoot

  • SpringBoot run 方法解析
  • SpringBoot 配置加载解析
  • SpringBoot 自动装配
  • SpringBoot ConfigurationProperties
  • SpringBoot 日志系统
  • SpringBoot ConditionalOnBean

SpringSecurity

  • SpringSecurity 请求全过程解析
  • SpringSecurity 自定义用户认证

MyBatis

基础支持层

  • 反射工具箱和 TypeHandler 系列
  • DataSource 及 Transaction 模块
  • binding 模块
  • 缓存模块

核心处理层

  • MyBatis 初始化
  • SqlNode 和 SqlSource
  • ResultSetHandler
  • StatementHandler
  • Executor 组件
  • SqlSession 组件

类解析

  • 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 技术基础

  • 把被说烂的 BIO、NIO、AIO 再从头到尾扯一遍
  • IO 模型
  • 四种 IO 编程及对比

JDK1.8 NIO 包 核心组件源码剖析

  • Selector、SelectionKey 及 Channel 组件

Netty 粘拆包及解决方案

  • TCP 粘拆包问题及 Netty 中的解决方案

Netty 多协议开发

  • 基于 HTTP 协议的 Netty 开发
  • 基于 WebSocket 协议的 Netty 开发
  • 基于自定义协议的 Netty 开发

基于 Netty 开发服务端及客户端

  • 基于 Netty 的服务端开发
  • 基于 Netty 的客户端开发

Netty 主要组件的源码分析

  • ByteBuf 组件
  • Channel 组件 和 Unsafe 组件
  • EventLoop 组件
  • ChannelPipeline 和 ChannelHandler 组件
  • Future 和 Promise 组件

Netty 高级特性

  • Netty 架构设计
  • Netty 高性能之道

Netty 技术细节源码分析

  • FastThreadLocal 源码分析
  • Recycler 对象池原理分析
  • MpscLinkedQueue 队列原理分析
  • HashedWheelTimer 时间轮原理分析
  • HashedWheelTimer & schedule
  • ByteBuf 的内存泄漏原因与检测原理
  • 内存池之 PoolChunk 设计与实现
  • 内存池之从内存池申请内存

Dubbo

架构设计

  • Dubbo 整体架构

SPI 机制

  • Dubbo 与 Java 的 SPI 机制

注册中心

  • Dubbo 注册中心模块简析
  • 注册中心的 Zookeeper 实现

远程通信

  • Dubbo 远程通信模块简析
  • Transport 组件
  • Exchange 组件
  • Buffer 组件
  • 基于 Netty 实现远程通信
  • 基于 HTTP 实现远程通信

RPC

  • RPC 模块简析
  • Protocol 组件
  • Proxy 组件
  • Dubbo 协议
  • Hessian 协议

集群

  • Dubbo 集群模块简析
  • 负载均衡
  • 集群容错
  • mock 与服务降级

Tomcat

Servlet 与 Servlet 容器

  • servlet-api 源码赏析
  • 一个简单的 Servlet 容器
  • Servlet 容器详解

Web 容器

  • 一个简单的 Web 服务器

Redis

  • 深挖 Redis 6.0 源码——SDS

Nacos

  • nacos 服务注册

Sentinel

  • sentinel 时间窗口实现
  • Sentinel 底层 LongAdder 的计数实现
  • Sentinel 限流算法的实现

RocketMQ

  • RocketMQ NameServer 与 Broker 的通信
  • RocketMQ 生产者启动流程
  • RocketMQ 消息发送流程
  • RocketMQ 消息发送存储流程
  • RocketMQ MappedFile 内存映射文件详解
  • RocketMQ ConsumeQueue 详解
  • RocketMQ CommitLog 详解
  • RocketMQ IndexFile 详解
  • RocketMQ 消费者启动流程
  • RocketMQ 消息拉取流程
  • RocketMQ Broker 处理拉取消息请求流程
  • RocketMQ 消息消费流程

番外篇(JDK 1.8)

基础类库

  • String 类 源码赏析
  • Thread 类 源码赏析
  • ThreadLocal 类 源码赏析

集合

  • HashMap 类 源码赏析
  • ConcurrentHashMap 类 源码赏析
  • LinkedHashMap 类 源码赏析
  • ArrayList 类 源码赏析
  • LinkedList 类 源码赏析
  • HashSet 类 源码赏析
  • TreeSet 类 源码赏析

并发编程

  • JUC 并发包 UML 全量类图
  • Executor 线程池组件 源码赏析
  • Lock 锁组件 源码赏析
  • 详解 AbstractQueuedSynchronizer 抽象类
  • CountdownLatch 类 源码赏析
  • CyclicBarrier 类 源码赏析
  • Semaphore 类 源码赏析

学习心得

个人经验

  • 初级开发者应该从 Spring 源码中学什么

编码规范

  • 一个程序员的自我修养

设计模式

  • 从 Spring 及 Mybatis 框架源码中学习设计模式(创建型)
  • 从 Spring 及 Mybatis 框架源码中学习设计模式(行为型)
  • 从 Spring 及 Mybatis 框架源码中学习设计模式(结构型)

多线程

  • Java 并发编程在各主流框架中的应用

Stars 趋势

Star History Chart

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 页精华),学习更加方便!

About

😱 从源码层面,剖析挖掘互联网行业主流技术的底层实现原理,为广大开发者 “提升技术深度” 提供便利。目前开放 Spring 全家桶,Mybatis、Netty、Dubbo 框架,及 Redis、Tomcat 中间件等

doocs.github.io/source-code-hunter

Resources

Readme
License
Activity

Stars

55 stars

Watchers

0 watching

Forks

12 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.