# 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 Spring-Trial Logo 学习与试验 **Java / Spring / Spring Boot** 及相关中间件、网络框架与工程实践的代码仓库。 每个 `Trial*` 目录对应一个独立主题,尽量做到 **可运行、可回顾、可扩展**。 [![Language](https://img.shields.io/badge/Language-Java-orange)](./) [![Build](https://img.shields.io/badge/Build-Maven-blue)](./pom.xml) [![JDK](https://img.shields.io/badge/JDK-17%2B-blueviolet)](./) [![Status](https://img.shields.io/badge/Status-Learning%20in%20progress-success)](./)
## 📌 仓库目标 - **沉淀可复用 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 [怒放吧德德]