# 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**: 6
- **Forks**: 2
- **Created**: 2025-12-28
- **Last Updated**: 2026-03-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ☕ Spring-Trial
学习与试验 Java / Spring / Spring Boot 及相关中间件与网络框架的代码仓库。
[](./)
[](./pom.xml)
[](./)
## 📌 仓库目标
- **沉淀可复用 Demo**:每个试验尽量做到可运行、可回顾、可扩展
- **记录学习路径**:配套文章/笔记,方便回溯
- **逐步工程化**:从“能跑”到“更规范”(测试、结构、配置、文档)
## 🧪 Demo 列表
- **Trial1-RocketMQ**:RocketMQ 相关试验(生产/消费、批量消息、顺序消息、事务消息等)
- **Trial2-Netty**:Netty 相关试验(BIO/NIO/AIO 网络通信、处理链路等)
- **Trial3-Mock-Design**:Mock 系统设计试验(Spring Boot + 持久化 + 缓存 + 集成测试等)
- **Trial4-AsyncTool**:京东 AsyncTool 异步编排框架试验(商品详情页并行任务编排等)
- **Trial5-api-security**:API 接口加密传输方案(RSA + AES-GCM 混合加密、防重放攻击、前后端加密通信等)
- **Trial6-InfluxDB**:InfluxDB 时序数据库试验(2.x 版本集成、时序数据存储与查询等)
- **Trial7-Design-Patterns**:设计模式实践试验(23种经典设计模式的 Java 实现与应用场景)
- **Trial8-Spring-Event**:Spring 事件机制试验(事件发布订阅、异步事件处理、业务解耦等)
> 说明:各 Demo 目录一般包含独立的 `pom.xml`,可单独构建与运行。
## 🚀 快速开始
### 环境要求
- **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
```
## 🧭 推荐阅读顺序
### 基础入门
1. **Trial2-Netty** - 了解网络与事件驱动模型
2. **Trial1-RocketMQ** - 熟悉消息队列基本使用
3. **Trial8-Spring-Event** - 掌握 Spring 事件机制与业务解耦
### 进阶应用
4. **Trial4-AsyncTool** - 学习异步任务编排与并行处理
5. **Trial5-api-security** - 掌握 API 接口加密与安全防护
6. **Trial6-InfluxDB** - 掌握时序数据库的使用与集成
### 工程实践
7. **Trial3-Mock-Design** - 体验更完整的工程化与设计拆分
8. **Trial7-Design-Patterns** - 学习设计模式在实际项目中的应用
## 🗂️ 目录结构
```text
java-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/ # 事件发布订阅示例
```
## ✨ 特性亮点
### 🎯 实用性导向
- 每个 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 | ✅ 完成 | 异步任务编排框架 |
| 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 | ✅ 完成 | 事件驱动架构实践 |
## 🤝 贡献与反馈
### 欢迎贡献
- 🐛 **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: [你的邮箱]
- 💬 微信: [你的微信号]
- 🔗 掘金: https://juejin.cn/user/2502950820787672/posts
---
**⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!**
Made with ❤️ by [Storm]