# 手写 SSM 三大框架底层核心代码:从源码到本质的深度解码

在 Java 后端开发的进阶之路上,SSM(Spring + SpringMVC + MyBatis)框架早已成为业界标准的“老伙计”。然而,许多开发者往往停留在“会配置、能调包”的应用层面,一旦遇到复杂故障或性能瓶颈,便因不懂底层原理而束手无策。本课程《手写 SSM 三大框架底层核心代码》旨在打破这一困境,通过从零开始手写核心代码,带你穿透 API 的黑盒,直击框架的设计哲学与执行机理。

课程以 MyBatis 为核心切入点,其逻辑清晰且极具代表性。你将跟随讲师的指引,重新审视一个 ORM 框架是如何诞生的。首先,我们会探讨 MyBatis 的核心架构设计,理解其如何通过封装 JDBC 来简化数据库操作。接着,课程深入到了 `mapper.xml` 文件的设计细节,剖析标签结构如何映射为 Java 对象,以及这种设计对扩展性的考量。

在解析层面,课程详细展示了如何构建一个基于 DOM 的 XML 解析工厂,逐步拆解如何遍历并解析 Mapper 文件中的 `<select>`、`<insert>` 等方法节点,以及更为复杂的 `<resultMap>` 配置。这一过程不仅锻炼了 Java IO 与 XML 解析能力,更让你明白配置中心与运行时数据是如何连接的。随后,我们将聚焦于核心组件 `SqlSession` 的创建与设计,理解它是如何作为数据库会话与业务逻辑之间的桥梁,管理事务与连接池的。

更为关键的是,课程深入讲解了两条核心执行路径:基于 `resultType` 的简单类型组装,以及基于 `resultMap` 的复杂对象映射组装。通过手写这两部分代码,你将彻底明白 MyBatis 是如何将 ResultSet 中的行数据精准反射并注入到 POJO 对象中的,包括嵌套结果集的处理逻辑。最后,通过创建 DAO 层的测试用例,验证整个链路的连通性,完成从配置加载、SQL 执行到结果映射的完整闭环。

这不仅是一次代码实现练习,更是一场关于设计模式的实战演练。通过理解 XML 解析、工厂模式、动态代理(后续章节涉及 Spring 部分)以及反射机制在框架中的综合运用,你将建立起坚实的技术底层认知。对于希望从“CRUD 工程师”转型为“架构思维开发者”的 Java 工程师而言,这门课是弥补知识盲区、提升技术深度的必经之路。掌握这些底层原理,将使你在面对 Spring 依赖注入、AOP 切面编程以及 SpringMVC 请求调度等高层概念时,拥有更加通透的理解视角。

课程目录

1-1 [手写Mybatis底层源码] mybatis框架底层核心是什么 (07:30)
1-2 [手写Mybatis底层源码] mapper.xml文件应该怎么设计 (10:08)
1-3 [手写Mybatis底层源码] 创建工厂解析xml文件 (13:09)
1-4 [手写Mybatis底层源码] 先解析mapper文件中的所有的方法节点 (14:24)
1-5 [手写Mybatis底层源码] 再解析mapper文件中的resultMap节点 (13:32)
1-6 [手写Mybatis底层源码] 创建sqlSession类 (15:44)
1-7 [手写Mybatis底层源码] 组装resultType类型 (09:54)
1-8 [手写Mybatis底层源码] 组装resultMap类型 (16:34)
1-9 [手写Mybatis底层源码] 创建dao层测试 (06:29)
2-1 [手写Spring底层源码] 工厂模式,IOC,Spring框架之间的关系 (10:58)
2-2 [手写Spring底层源码] 简单工厂模式 (17:56)
2-3 [手写Spring底层源码] 工厂模式转换为IOC模式 (32:53)
2-4 [手写Spring底层源码] spring框架的核心代码 (37:09)
3-1 [手写SpringMVC底层源码] 创建一个总控制器 (18:18)
3-2 [手写SpringMVC底层源码] 怎么自定义注解 (16:27)
3-3 [手写SpringMVC底层源码] 自定义控制层和路径注解 (08:38)
3-4 [手写SpringMVC底层源码] 初始化HandleMapping (29:59)
3-5 [手写SpringMVC底层源码] 解析url到对应的方法 (19:03)
3-6 [手写SpringMVC底层源码] 处理方法的参数 (16:56)
3-7 [手写SpringMVC底层源码] 实现视图解析器和框架原理的总结 (20:40)