# Java-Trial
**Repository Path**: liyongde/java-trial
## Basic Information
- **Project Name**: Java-Trial
- **Description**: spring-demo、Java-demo等案例代码
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 2
- **Created**: 2025-12-28
- **Last Updated**: 2026-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ☕ Spring-Trial

学习与试验 **Java / Spring / Spring Boot** 及相关中间件、网络框架与工程实践的代码仓库。
每个 `Trial*` 目录对应一个独立主题,尽量做到 **可运行、可回顾、可扩展**。
[](./)
[](./pom.xml)
[](./)
[](./)
## 📌 仓库目标
- **沉淀可复用 Demo**:每个试验尽量做到可运行、可回顾、可扩展
- **记录学习路径**:配套文章/笔记,方便回溯
- **逐步工程化**:从“能跑”到“更规范”(测试、结构、配置、文档)
## 🧪 Demo 列表
| 编号 | 目录 | 主题概要 |
|------|------|----------|
| 1 | [Trial1-RocketMQ](./Trial1-RocketMQ) | RocketMQ 生产/消费、批量、顺序、事务消息等 |
| 2 | [Trial2-Netty](./Trial2-Netty) | BIO/NIO/AIO 与 Netty 服务端/客户端、处理链路 |
| 3 | [Trial3-Mock-Design](./Trial3-Mock-Design) | Mock 系统(DDD 分层、持久化、缓存、集成测试) |
| 4 | [Trial4-AsyncTool](./Trial4-AsyncTool) | 京东 AsyncTool 异步编排(商品详情页并行任务) |
| 5 | [Trial5-api-security](./Trial5-api-security) | RSA + AES-GCM 混合加密、防重放、前后端加密通信 |
| 6 | [Trial6-InfluxDB](./Trial6-InfluxDB) | InfluxDB 2.x 集成与时序数据读写 |
| 7 | [Trial7-Design-Patterns](./Trial7-Design-Patterns) | 23 种经典设计模式 Java 实现 |
| 8 | [Trial8-Spring-Event](./Trial8-Spring-Event) | Spring 事件发布/订阅、异步事件、业务解耦 |
| 9 | [Trial9-Spring-Email](./Trial9-Spring-Email) | Spring Mail 文本/HTML/附件/模板邮件与 REST API |
| 10 | [Trial10-Independent-Testing](./Trial10-Independent-Testing) | 异常场景下事务传播(`REQUIRES_NEW`)与回滚验证 |
| 11 | [Trial11-ShardingSphere](./Trial11-ShardingSphere) | ShardingSphere 分库分表(规划中) |
| 12 | [Trial12-Timer-Job](./Trial12-Timer-Job) | `@Scheduled` 与 XXL-JOB 分布式任务调度 |
| 13 | [Trial13-Feign](./Trial13-Feign) | OpenFeign 声明式 HTTP、服务间调用 |
| 14 | [Trial14-Alibaba-1688](./Trial14-Alibaba-1688) | 1688 OpenAPI SDK、消息推送与订单/物流回调 |
> **说明**
> - 各 Demo 一般含独立 `pom.xml`,可进入子目录单独 `mvn` 构建与运行。
> - 根目录 [`pom.xml`](./pom.xml) 聚合了大部分模块;**Trial4-AsyncTool** 当前未纳入根聚合,需在子目录单独构建。
> - 编号 11 等目录可能仅为占位,部分试验仍在规划中。
## 🚀 快速开始
### 环境要求
- **JDK**:建议 17+(若子模块有不同要求,以子模块 README 为准)
- **Maven**:3.8+
- **IDE**:推荐 IntelliJ IDEA 或 Eclipse
### 构建
在仓库根目录:
```bash
# 构建所有模块
mvn clean compile
# 跳过测试打包
mvn -q -DskipTests package
# 运行测试
mvn test
```
或进入某个子模块单独构建,例如:
```bash
cd Trial3-Mock-Design
mvn clean test
cd Trial6-InfluxDB/Trial6-InfluxDB2.x-Demo
mvn spring-boot:run
```
### 快速体验
选择感兴趣的项目快速运行:
```bash
# 1. RocketMQ 示例(需要先启动 RocketMQ 服务)
cd Trial1-RocketMQ/Trial1-RocketMQ-Demo1
mvn spring-boot:run
# 2. Netty 网络通信示例
cd Trial2-Netty/Trial2-Netty-Demo01
# 先运行服务端
mvn exec:java -Dexec.mainClass="com.storm.netty.server.NettyServer"
# 再运行客户端
mvn exec:java -Dexec.mainClass="com.storm.netty.client.NettyClient"
# 3. Mock 系统(内嵌 H2 数据库,开箱即用)
cd Trial3-Mock-Design
mvn spring-boot:run
# 访问 http://localhost:8080
# 4. Spring 事件机制示例
cd Trial8-Spring-Event/Trial-8-Spring-Event-Demo
mvn spring-boot:run
# 访问 http://localhost:8080
# 5. Spring 定时任务示例(无需外部依赖)
cd Trial12-Timer-Job/Trial12-Spring-Task
mvn spring-boot:run
# 6. XXL-JOB 分布式任务调度(需先启动 XXL-JOB 调度中心)
cd Trial12-Timer-Job/Trial12-XXL-Job
mvn spring-boot:run
# 7. Feign 声明式 HTTP 客户端(需先启动 User-Service)
cd Trial13-Feign/Trial13-User-Service
mvn spring-boot:run
# 再运行 Feign-Client 的测试
cd ../Trial13-Feign-Client
mvn test
# 8. Spring 邮件发送(需配置 SMTP,见子项目 README)
cd Trial9-Spring-Email/Trial9-Spring-Email-Demo
mvn spring-boot:run
# 9. 事务传播与异常回滚(需 MySQL,见子项目 README)
cd Trial10-Independent-Testing/Trial10-Exception-Transaction-Demo
mvn test
# 10. 1688 开放平台示例(需配置 SDK 凭证)
cd Trial14-Alibaba-1688/Trial14-1688-OpenApi
mvn spring-boot:run
# 或运行消息监听示例
cd ../Trial14-1688-Message
mvn spring-boot:run
```
## 🧭 推荐阅读顺序
### 基础入门
1. **Trial2-Netty** — 网络与事件驱动模型
2. **Trial1-RocketMQ** — 消息队列基本使用
3. **Trial8-Spring-Event** — Spring 事件机制与业务解耦
### 进阶应用
4. **Trial4-AsyncTool** — 异步任务编排与并行处理
5. **Trial5-api-security** — API 加密与安全防护
6. **Trial6-InfluxDB** — 时序数据库集成
7. **Trial9-Spring-Email** — 邮件发送与模板
8. **Trial13-Feign** — 微服务声明式 HTTP 调用
### 工程实践
9. **Trial3-Mock-Design** — DDD 分层与完整工程化实践
10. **Trial7-Design-Patterns** — 设计模式落地
11. **Trial10-Independent-Testing** — 事务传播与测试验证
12. **Trial12-Timer-Job** — 定时任务与分布式调度
### 平台对接
13. **Trial14-Alibaba-1688** — 第三方开放平台 SDK 与消息回调
## 🗂️ 目录结构
```text
Spring-Trial/
├─ Trial1-RocketMQ/ # RocketMQ 相关试验
│ ├─ Trial1-RocketMQ-Demo0/ # 原生 API 示例
│ └─ Trial1-RocketMQ-Demo1/ # Spring Boot 集成示例
├─ Trial2-Netty/ # Netty 相关试验
│ ├─ Trial2-Netty-Base/ # BIO/NIO/AIO 基础示例
│ └─ Trial2-Netty-Demo01/ # Netty 客户端/服务端示例
├─ Trial3-Mock-Design/ # Mock 系统设计试验(Spring Boot)
├─ Trial4-AsyncTool/ # AsyncTool 异步编排框架试验
│ └─ Trial4-AsyncTool-Demo/ # 商品详情页并行任务编排示例
├─ Trial5-api-security/ # API 接口加密传输方案
│ └─ Trial5-api-security-demo/ # RSA + AES-GCM 混合加密示例
├─ Trial6-InfluxDB/ # InfluxDB 时序数据库试验
│ └─ Trial6-InfluxDB2.x-Demo/ # InfluxDB 2.x 版本集成示例
├─ Trial7-Design-Patterns/ # 设计模式实践试验
├─ Trial8-Spring-Event/ # Spring 事件机制试验
│ └─ Trial-8-Spring-Event-Demo/ # 事件发布订阅示例
├─ Trial9-Spring-Email/ # Spring 邮件发送试验
│ └─ Trial9-Spring-Email-Demo/
├─ Trial10-Independent-Testing/ # 独立测试 / 事务传播试验
│ └─ Trial10-Exception-Transaction-Demo/
├─ Trial11-ShardingSphere/ # ShardingSphere(规划中)
├─ Trial12-Timer-Job/ # 定时任务调度试验
│ ├─ Trial12-Spring-Task/ # Spring @Scheduled 原生定时任务示例
│ └─ Trial12-XXL-Job/ # XXL-JOB 分布式任务调度示例
├─ Trial13-Feign/ # OpenFeign 声明式 HTTP 客户端试验
│ ├─ Trial13-User-Service/ # REST 服务提供方(被调用方)
│ └─ Trial13-Feign-Client/ # Feign 客户端(调用方)
└─ Trial14-Alibaba-1688/ # 1688 开放平台试验
├─ Trial14-1688-OpenApi/ # 1688 OpenAPI SDK 调用示例
└─ Trial14-1688-Message/ # 1688 消息推送监听示例
```
## ✨ 特性亮点
### 🎯 实用性导向
- 每个 Demo 都基于真实业务场景设计
- 提供完整的运行示例和测试用例
- 包含详细的代码注释和文档说明
### 🏗️ 架构规范
- 遵循 DDD(领域驱动设计)分层架构
- 采用 Spring Boot 最佳实践
- 集成常用中间件和工具
### 🧪 测试完备
- 单元测试覆盖核心逻辑
- 集成测试验证完整流程
- 性能测试评估系统表现
### 📖 文档齐全
- 每个项目都有独立的 README
- 提供 API 文档和使用说明
- 配套技术文章和学习笔记
## ❓ 常见问题
Q: 如何选择适合的 Demo 开始学习?
**A:** 建议按照以下路径:
- **Java 基础**:从 Trial2-Netty 开始,了解网络编程
- **Spring 入门**:选择 Trial8-Spring-Event,学习事件机制
- **中间件实践**:Trial1-RocketMQ 或 Trial6-InfluxDB
- **系统设计**:Trial3-Mock-Design,体验完整的工程化实践
Q: 运行某个 Demo 时遇到依赖问题怎么办?
**A:**
1. 确保 JDK 版本符合要求(建议 17+)
2. 检查 Maven 配置和网络连接
3. 查看对应项目的 README 文件中的特殊要求
4. 某些项目需要外部服务(如 RocketMQ、InfluxDB),请先启动相关服务
Q: 可以在生产环境使用这些代码吗?
**A:** 这些 Demo 主要用于学习和试验,生产使用前请:
1. 根据实际业务需求进行调整
2. 完善错误处理和监控
3. 进行充分的测试和性能调优
4. 遵循公司的代码规范和安全要求
## 📚 文章与笔记
- 掘金主页:[怒放吧德德 的技术文章](https://juejin.cn/user/2502950820787672/posts)
## 📋 各项目详情
| 项目 | 技术栈 | 状态 | 说明 |
|------|--------|------|------|
| Trial1-RocketMQ | RocketMQ, Spring Boot | ✅ 完成 | 消息队列基础与高级特性 |
| Trial2-Netty | Netty, NIO | ✅ 完成 | 网络编程模型对比 |
| Trial3-Mock-Design | Spring Boot, MyBatis-Plus, H2 | ✅ 完成 | DDD 架构设计实践 |
| Trial4-AsyncTool | AsyncTool, Spring Boot | ✅ 完成 | 异步任务编排(根 pom 未聚合,子目录构建) |
| Trial5-api-security | RSA, AES, Spring Boot | ✅ 完成 | API 加密传输方案 |
| Trial6-InfluxDB | InfluxDB 2.x, Spring Boot | ✅ 完成 | 时序数据库集成 |
| Trial7-Design-Patterns | Java, 设计模式 | 🚧 进行中 | 23种经典设计模式实现 |
| Trial8-Spring-Event | Spring Event, Spring Boot | ✅ 完成 | 事件驱动架构实践 |
| Trial9-Spring-Email | Spring Mail, Thymeleaf | ✅ 完成 | 多场景邮件发送与 REST API |
| Trial10-Independent-Testing | Spring Transaction, MyBatis, JUnit | ✅ 完成 | 异常下 `REQUIRES_NEW` 事务行为 |
| Trial11-ShardingSphere | ShardingSphere | 📋 规划中 | 分库分表占位模块 |
| Trial12-Timer-Job | Spring Task, XXL-JOB | ✅ 完成 | 定时任务与分布式调度 |
| Trial13-Feign | OpenFeign, Spring Boot | ✅ 完成 | 声明式 HTTP 客户端调用 |
| Trial14-Alibaba-1688 | 1688 OpenAPI SDK, Redis | ✅ 完成 | 开放平台 SDK 集成与消息回调 |
## 🤝 贡献与反馈
### 欢迎贡献
- 🐛 **Bug 修复**:发现问题请提 Issue 或直接 PR
- 📝 **文档完善**:改进 README、注释或添加使用说明
- ✨ **功能增强**:优化现有代码或添加新特性
- 🧪 **测试补充**:增加测试用例提高代码质量
### 提交规范
```bash
# 提交格式
git commit -m "type(scope): description"
# 示例
git commit -m "feat(trial3): add cache configuration"
git commit -m "fix(trial1): resolve message consumption issue"
git commit -m "docs(readme): update installation guide"
```
### 需要帮助?
- 如果你希望我把某个 Demo 的 **运行步骤**、**接口说明**、**架构图** 也补齐,告诉我对应目录即可
- 遇到问题可以提 Issue,我会尽快回复
- 欢迎在 Issues 中提出新的 Demo 建议
### 联系方式
- 📧 Email: 1419499670@qq.com
- 💬 微信: [-]
- 🔗 掘金: https://juejin.cn/user/2502950820787672/posts
---
**⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!**
Made with ❤️ by [怒放吧德德]