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 — source-code-hunter/README.md at master · yingmingming/source-code-hunter

Expand file tree

/

README.md

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
314 lines (224 loc) · 16.5 KB
/

README.md

Copy path

File metadata and controls

314 lines (224 loc) · 16.5 KB
Raw
Copy raw file
Download raw file
Outline
Edit and raw actions

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

license stars contributors help-wanted issues PRs Welcome

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

加入我们,一起通读互联网行业主流框架及中间件源码,成为强大的 “源码猎人”,目前开放的有 Spring 全家桶、Mybatis、Netty、Dubbo 框架,及 Redis、Tomcat 中间件等,让我们一起开拓新的领地,揭开这些源码的神秘面纱。

本项目主要用于记录框架及中间件源码的阅读经验、个人理解及解析,希望能够使阅读源码变成一件简单有趣,且有价值的事情,抽空更新中... (如果本项目对您有帮助,请watch、star、fork 素质三连一波,鼓励一下作者,谢谢)

  • Netlify: https://schunter.netlify.app
  • 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)
  • 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 类解析

  • 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

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

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时间轮原理分析
  • ByteBuf的内存泄漏原因与检测原理

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 服务注册

番外篇(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并发编程在各主流框架中的应用

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 所做出的贡献,参与项目维护请戳这儿。

请小码农喝杯coffee吧

在这里插入图片描述

You are visitor 01402520 — 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.