# java-study
**Repository Path**: CGzhao/ssm-study
## Basic Information
- **Project Name**: java-study
- **Description**: Java后端系统学习仓库,目前集成内容有:
1、SSM框架(SpringMVC+Spring+Mybatis);
2、SpringBoot框架;
3、Maven
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-09
- **Last Updated**: 2026-05-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 Java 后端框架系统化学习仓库
> 一站式的 Java 后端框架学习仓库:从 SSM 底层原理到 SpringBoot 企业级实战,再到 Maven 构建工具、Java 多线程并发、Stream 流式编程和设计模式系统精通。包含 **58 篇深度文档** + **8 组 SSM 源码模块** + **7 份练习题集** + **12 个 SpringBoot 练习工程** + **10 个 Maven 练习工程** + **8 组多线程 Lab** + **10 组 Stream Lab(含 JUnit 自动化练习)** + **8 组设计模式 Lab(含答案 + 练习版)**。
---
## 📋 仓库概览
| 信息 | 详情 |
|:---|:---|
| **技术栈** | Java 17 · Spring 5.3 · SpringMVC · MyBatis 3.5 · SpringBoot 3.2 · Maven 3.9 · JUC |
| **构建工具** | Maven |
| **许可证** | MIT License |
---
## 📂 仓库结构
```
JavaWeb/
├── LICENSE
├── .gitignore
├── README.md ← 你正在看的文件
│
├── ssm-study/ ← 🏛️ SSM 框架底层原理学习
│ ├── 01-spring-ioc/ ← Spring IoC 容器与依赖注入
│ ├── 02-spring-aop/ ← Spring AOP 面向切面编程
│ ├── 03-spring-tx/ ← Spring 事务管理
│ ├── 04-springmvc-basics/ ← SpringMVC 基础
│ ├── 05-springmvc-advanced/ ← SpringMVC 进阶
│ ├── 06-mybatis-basics/ ← MyBatis 基础
│ ├── 07-mybatis-advanced/ ← MyBatis 高级
│ ├── 08-ssm-integration/ ← SSM 三大框架整合
│ ├── docs/ ← 13 篇 SSM 深度文档
│ ├── exercises/ ← 6 份练习题集
│ └── sql/ ← 公共建表脚本
│
├── springboot-study/ ← 🚀 SpringBoot 进阶实战学习
│ ├── docs/ ← 9 篇 SpringBoot 文档
│ └── springboot-labs/ ← 6 组练习工程(答案版 + 纯净版)
│ ├── lab01-hello-*/ ← 第一个 Boot 项目
│ ├── lab02-config-*/ ← 配置文件与多环境
│ ├── lab03-web-*/ ← Web 开发核心
│ ├── lab04-mybatis-*/ ← Boot 整合 MyBatis
│ ├── lab05-advanced-*/ ← AOP / 定时任务 / 缓存
│ └── lab06-project-*/ ← 🎓 期终大作业
│
├── maven-study/ ← 📦 Maven 构建工具系统学习
│ ├── docs/ ← 7 篇 Maven 文档
│ └── maven-labs/ ← 5 组练习工程(答案版 + 纯净版)
│ ├── lab01-basic-*/ ← 基础项目搭建
│ ├── lab02-dependency-*/ ← 依赖管理实战
│ ├── lab03-plugin-*/ ← 插件配置实战
│ ├── lab04-multimodule-*/ ← 多模块项目
│ └── lab05-profile-*/ ← Profile 环境管理
│
├── java-multithreading-study/ ← 🧵 Java 多线程与并发编程
│ ├── docs/ ← 7 篇多线程深度文档
│ └── thread-labs/ ← 4 组练习工程(答案版 + 纯净版)
│ ├── lab01-thread-basic-*/ ← 三种线程创建方式
│ ├── lab02-sync-*/ ← synchronized / ReentrantLock
│ ├── lab03-producer-consumer-*/ ← 生产者消费者经典模型
│ └── lab04-threadpool-*/ ← 线程池实战配置
│
├── java-stream-study/ ← 🌊 Java Stream 流式编程
│ ├── docs/ ← 7 篇 Stream 深度文档
│ ├── exercises/ ← 练习题集(含参考答案)
│ └── stream-labs/ ← 5 组练习工程(答案版 + 练习版)
│ ├── lab01-stream-basics-*/ ← 创建流 / filter / map / reduce
│ ├── lab02-intermediate-*/ ← flatMap / sorted / distinct
│ ├── lab03-collectors-*/ ← groupingBy / partitioningBy
│ ├── lab04-business-scenario-*/ ← 电商订单综合实战
│ └── lab05-junit-stream-*/ ← JUnit 自动化练习与答案
│
└── java-design-patterns-study/ ← 🏛️ Java 设计模式系统学习
├── docs/ ← 5 篇设计模式深度文档
└── pattern-labs/ ← 4 组练习工程(答案版 + 纯净版)
├── lab01-creational-*/ ← 单例 / 工厂 / 建造者
├── lab02-proxy-decorator-*/ ← 代理(静态/动态)/ 装饰器
├── lab03-strategy-observer-*/ ← 策略 / 观察者
└── lab04-template-chain-*/ ← 模板方法 / 责任链
```
---
## 📚 学习路线
本仓库由浅入深划分为**六大阶段**,建议按顺序推进:
### 🏛️ 第一阶段:SSM 框架底层原理 → [进入 ssm-study](ssm-study/)
| 序号 | 模块 | 核心知识点 |
| :---: | :--- | :--- |
| 01 | Spring IoC | Bean 注册、DI 注入、注解驱动、组件扫描 |
| 02 | Spring AOP | 动态代理、JDK/CGLIB、通知类型、切点表达式 |
| 03 | Spring TX | 声明式事务、传播行为、隔离级别、失效场景 |
| 04 | SpringMVC 基础 | DispatcherServlet、@RequestMapping、参数绑定 |
| 05 | SpringMVC 进阶 | 拦截器、全局异常处理、文件上传、RESTful |
| 06 | MyBatis 基础 | SqlSession、Mapper XML、resultMap、动态SQL |
| 07 | MyBatis 高级 | 缓存机制、插件拦截器、TypeHandler、批量操作 |
| 08 | SSM 整合 | 父子容器、整合配置、事务一致性 |
### 🚀 第二阶段:SpringBoot 快速进阶 → [进入 springboot-study](springboot-study/)
| 序号 | 文档 | 练习工程 | 核心知识点 |
| :---: | :--- | :--- | :--- |
| 过渡 | 从SSM到SpringBoot | — | 核心差异与心智模型转变 |
| SB02 | 快速启动 | Lab01 | 项目创建、启动流程、第一个接口 |
| SB03 | 自动配置原理 | — | @Conditional、Starter 机制 |
| SB04 | 配置文件系统 | Lab02 | yml、Profile、@ConfigurationProperties |
| SB05 | Web 开发实战 | Lab03 | RESTful CRUD、Result 统一响应、全局异常、参数校验 |
| SB06 | 数据层整合 | Lab04 | Boot + MyBatis + PageHelper 分页 |
| SB07 | AOP 企业增强 | Lab05 | 日志切面、@Scheduled、@Cacheable |
| SB08 | 测试与部署 | Lab06 🎓 | @SpringBootTest、Maven 打包、Docker |
### 📦 第三阶段:Maven 构建工具精通 → [进入 maven-study](maven-study/)
| 序号 | 文档 | 练习工程 | 核心知识点 |
| :---: | :--- | :--- | :--- |
| 01 | 学习路线图 | — | 全局视野、能力自测 |
| 02 | 基础概念与安装配置 | Lab01 | GAV 坐标、仓库体系、settings.xml |
| 03 | POM 文件与项目结构 | Lab01 | 超级 POM、继承聚合、属性变量 |
| 04 | 依赖管理深度解析 | Lab02 | scope、传递性、冲突排除、BOM |
| 05 | 生命周期与插件机制 | Lab03 | 三套生命周期、常用插件、自定义绑定 |
| 06 | 多模块项目实战 | Lab04 | 父子工程、模块拆分、版本统管 |
| 07 | Profile 与高级特性 | Lab05 | 多环境构建、Archetype、私服 |
### 🧵 第四阶段:Java 多线程与并发 → [进入 java-multithreading-study](java-multithreading-study/)
| 序号 | 文档 | 练习工程 | 核心知识点 |
| :---: | :--- | :--- | :--- |
| 01 | 多线程学习路线图 | — | 五阶段体系、能力自测 |
| 02 | 线程基础与生命周期 | Lab01 | Thread/Runnable/Callable、六大状态、sleep/join/interrupt |
| 03 | 线程同步与锁机制 | Lab02 | synchronized 原理、死锁四条件、ReentrantLock、ThreadLocal |
| 04 | JUC 并发工具类 | Lab03 | CountDownLatch / Semaphore / CompletableFuture |
| 05 | 线程池原理与实践 | Lab04 | ThreadPoolExecutor 7 参数、拒绝策略、合理设置线程数 |
| 06 | 原子操作与 JMM | — | JMM 内存模型、volatile、CAS/ABA、Atomic 原子类 |
| 07 | 并发集合与面试题 | — | ConcurrentHashMap、CopyOnWriteArrayList、高频面试 |
### 🌊 第五阶段:Java Stream 流式编程 → [进入 java-stream-study](java-stream-study/)
| 序号 | 文档 | 练习工程 | 核心知识点 |
| :---: | :--- | :--- | :--- |
| 01 | Stream 学习路线图 | — | 四阶段体系、能力自测 |
| 02 | Stream 基础与创建流 | Lab01 | 惰性求值、filter/map、reduce、一次性消费 |
| 03 | 中间操作详解 | Lab02 | flatMap、sorted、distinct、distinctByKey |
| 04 | 终端操作与 Collectors | Lab03 | groupingBy、partitioningBy、joining |
| 05 | Optional 与函数式接口 | Lab03 | orElse vs orElseGet、四大函数式接口 |
| 06 | 并行流与性能优化 | Lab04 | parallelStream、IntStream、性能陷阱 |
| 07 | Stream 实战与面试题 | Lab04/Lab05 | 电商统计、TopN、高频面试题、JUnit 自动化练习 |
### 🏛️ 第六阶段:设计模式系统学习 → [进入 java-design-patterns-study](java-design-patterns-study/)
| 序号 | 文档 | 练习工程 | 核心知识点 |
| :---: | :--- | :--- | :--- |
| 01 | 设计模式学习路线图 | — | 23 种模式分类、SOLID 原则 |
| 02 | 创建型模式 | Lab01 | 单例(4种)/ 工厂方法 / 抽象工厂 / 建造者 / 原型 |
| 03 | 结构型模式 | Lab02 | 静态代理 / JDK动态代理 / 装饰器 / 适配器 / 外观 |
| 04 | 行为型模式 | Lab03/04 | 策略 / 观察者 / 模板方法 / 责任链 |
| 05 | Spring 中的设计模式 | — | AOP代理 / Event观察者 / JdbcTemplate模板方法 |
---
## ⚡ 快速开始
### 环境要求
- **JDK** 17+
- **Maven** 3.8+
- **MySQL** 8.0+(部分 Lab 需要)
- **IDE** IntelliJ IDEA 推荐
### 克隆项目
```bash
git clone https://github.com/your-repo/JavaWeb.git
cd JavaWeb
```
### 运行 SSM 模块
```bash
cd ssm-study
mvn clean compile
mvn -pl 01-spring-ioc test
```
### 运行 SpringBoot Lab
```bash
cd springboot-study/springboot-labs/lab03-web-solution
mvn spring-boot:run
# 访问 http://localhost:8080/api/users
```
---
## 📖 文档总览
📗 SSM 系列文档(13 篇)— 位于 ssm-study/docs/
| 文档 | 内容 |
|:---|:---|
| `00-学习路线图.md` | 全景学习规划 |
| `01-Spring-IoC容器深入理解.md` | IoC 原理、Bean 生命周期 |
| `02-Spring-依赖注入全面解析.md` | DI 方式对比、最佳实践 |
| `03-Spring-AOP面向切面编程.md` | 代理模式、通知类型 |
| `04-Spring-Bean生命周期与扩展点.md` | BeanPostProcessor、扩展点 |
| `05-Spring-事务管理详解.md` | 传播行为、隔离级别 |
| `06-SpringMVC-核心架构与请求流程.md` | DispatcherServlet、九大组件 |
| `07-SpringMVC-高级特性.md` | 拦截器、异常处理器 |
| `08-MyBatis-核心机制详解.md` | 映射原理、接口绑定 |
| `09-MyBatis-高级特性与优化.md` | 缓存、插件、性能优化 |
| `10-SSM整合实战指南.md` | 三框架整合与容器隔离 |
| `Spring-Proxy代理机制详解.md` | JDK/CGLIB 代理深度剖析 |
| `SpringMVC-请求执行全流程图解.md` | Mermaid 时序图 + 逐步图解 |
📘 SpringBoot 系列文档(9 篇)— 位于 springboot-study/docs/
| 文档 | 内容 |
|:---|:---|
| `11-从SSM到SpringBoot过渡.md` | SSM → Boot 核心差异桥梁 |
| `SB01-SpringBoot学习路线图.md` | 七阶段进阶规划 |
| `SB02-SpringBoot快速启动与工程搭建.md` | 项目创建、启动流程 |
| `SB03-自动配置原理深度解析.md` | @Conditional、Starter |
| `SB04-配置文件系统详解.md` | yml、Profile、优先级 |
| `SB05-Web开发核心实战.md` | REST、Result、异常、校验 |
| `SB06-数据层整合MyBatis.md` | Starter 整合、CRUD、分页 |
| `SB07-AOP与企业级增强.md` | 切面、定时任务、缓存 |
| `SB08-测试与打包部署.md` | 测试、打包、Docker |
📙 Maven 系列文档(7 篇)— 位于 maven-study/docs/
| 文档 | 内容 |
| :--- | :--- |
| `01-Maven学习路线图.md` | 全局路线图与能力自测 |
| `02-Maven基础概念与安装配置.md` | GAV、仓库体系、settings.xml |
| `03-POM文件与项目结构详解.md` | POM 结构、继承聚合 |
| `04-依赖管理深度解析.md` | scope、传递性、排除、BOM |
| `05-生命周期与插件机制.md` | 三套生命周期、自定义绑定 |
| `06-多模块项目实战.md` | 父子工程、模块拆分 |
| `07-Profile与高级特性.md` | 多环境构建、Archetype |
🧵 多线程系列文档(7 篇)— 位于 java-multithreading-study/docs/
| 文档 | 内容 |
| :--- | :--- |
| `01-多线程学习路线图.md` | 五阶段体系 + 能力自测 |
| `02-线程基础与生命周期.md` | 进程/线程/协程对比 + 三种创建方式 + 六大状态机 |
| `03-线程同步与锁机制.md` | 竞态条件 + synchronized 底层 + 死锁 + ReentrantLock + ThreadLocal |
| `04-JUC并发工具类.md` | CountDownLatch / CyclicBarrier / Semaphore / CompletableFuture |
| `05-线程池原理与实践.md` | ThreadPoolExecutor 7 参数 + 拒绝策略 + 合理设置线程数公式 |
| `06-原子操作与JMM内存模型.md` | JMM 主/工作内存 + volatile + CAS/ABA + Atomic 原子类家族 |
| `07-并发集合与常见面试题.md` | ConcurrentHashMap 深度解析 + 6 道高频面试题答案 |
🏛️ 设计模式系列文档(5 篇)— 位于 java-design-patterns-study/docs/
| 文档 | 内容 |
| :--- | :--- |
| `01-设计模式学习路线图.md` | SOLID 原则 + 23 种模式分类 + Spring 对应关系速查表 |
| `02-创建型模式.md` | 单例(饿汉/DCL/内部类/枚举)+ 工厂方法 + 抽象工厂 + 建造者 + 原型 |
| `03-结构型模式.md` | 静态代理 + JDK 动态代理 + 装饰器 + 适配器 + 外观 |
| `04-行为型模式.md` | 策略(含 Lambda)+ 观察者 + 模板方法(含钩子)+ 责任链 |
| `05-Spring中的设计模式.md` | AOP代理 / BeanFactory工厂 / Event观察者 / HttpWrapper装饰器 |
🌊 Stream 系列文档(7 篇)— 位于 java-stream-study/docs/
| 文档 | 内容 |
| :--- | :--- |
| `01-Stream学习路线图.md` | 四阶段体系 + 能力自测 |
| `02-Stream基础与创建流.md` | Stream vs Collection + 七种创建方式 + 惰性求值 |
| `03-中间操作详解.md` | filter / map / flatMap / sorted / distinct / peek |
| `04-终端操作与Collectors.md` | groupingBy 多级分组 + partitioningBy + 统计收集器 |
| `05-Optional与函数式接口.md` | Optional 最佳实践 + Predicate/Function/Consumer/Supplier |
| `06-并行流与性能优化.md` | parallelStream 原理 + IntStream + 性能最佳实践 |
| `07-Stream实战与面试题.md` | 电商订单实战 + 13 道高频面试题 + 解题套路 |
---
## 🤝 贡献与反馈
欢迎提交 Issue 或 Pull Request 来完善本项目。如果本项目对你有帮助,欢迎 ⭐ Star 支持!
---
## 📄 许可证
本项目基于 [MIT License](LICENSE) 开源。
Copyright © 2026 划船不用桨全靠浪