2026-04-06 19:01:37 +08:00
|
|
|
|
# Spring Boot 架构技能集
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
`Spring Boot` `架构模式` `Claude Code` `代码生成` `DDD`
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
# Spring Boot 技能市场
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
帮助你构建真正适合需求的 Spring Boot 应用架构的 Claude Code 技能集。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 为什么存在
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
项目起初简单,往往越来越混乱。这些技能帮助你根据当前阶段选择合适的架构——并在复杂度增加时提供清晰的演进路径。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
> **从简单开始。只在复杂度真正需要时才引入复杂度。**
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
基于 [spring-boot-application-architecture-patterns](https://github.com/sivaprasadreddy/spring-boot-application-architecture-patterns) 中的模式构建。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 架构模式(渐进式)
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
| 模式 | 复杂度 | 适用场景 |
|
|
|
|
|
|
|------|--------|----------|
|
|
|
|
|
|
| **分层架构** | ⭐ 低 | 简单 CRUD、原型、MVP |
|
|
|
|
|
|
| **按模块分包** | ⭐⭐ 低-中 | 3-5 个独立功能、中型应用 |
|
|
|
|
|
|
| **模块化单体** | ⭐⭐ 中 | 需要模块边界、Spring Modulith |
|
|
|
|
|
|
| **Tomato** | ⭐⭐⭐ 中-高 | 丰富领域、值对象、类型安全 |
|
|
|
|
|
|
| **DDD+六边形** | ⭐⭐⭐⭐ 高 | 复杂领域、CQRS、基础设施解耦 |
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 安装
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
> **使用 Codex?** 请参阅 [CODEX-COMPATIBILITY.md](./CODEX-COMPATIBILITY.md) 获取详细的 Codex 安装和使用说明。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
### Claude Code(插件市场)
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
/plugin marketplace add a-pavithraa/springboot-skills-marketplace
|
|
|
|
|
|
/plugin enable a-pavithraa/springboot-skills-marketplace
|
|
|
|
|
|
/plugin install springboot-architecture@springboot-skills-marketplace
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
### Claude Code(手动安装)
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-04-06 19:01:37 +08:00
|
|
|
|
# 克隆或下载本仓库
|
2026-04-06 15:47:33 +08:00
|
|
|
|
git clone https://github.com/a-pavithraa/springboot-skills-marketplace.git
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
# 将技能复制到 Claude Code 技能目录
|
2026-04-06 15:47:33 +08:00
|
|
|
|
cp -r springboot-skills-marketplace/plugins/springboot-architecture/skills/* ~/.claude/skills/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
### Codex(手动安装)
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-04-06 19:01:37 +08:00
|
|
|
|
# 克隆或下载本仓库
|
2026-04-06 15:47:33 +08:00
|
|
|
|
git clone https://github.com/a-pavithraa/springboot-skills-marketplace.git
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
# 将技能复制到 Codex 技能目录
|
2026-04-06 15:47:33 +08:00
|
|
|
|
mkdir -p ~/.codex/skills
|
|
|
|
|
|
cp -r springboot-skills-marketplace/plugins/springboot-architecture/skills/* ~/.codex/skills/
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 使用方法
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
### Claude Code
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
技能在相关场景下会被自动发现和加载。Claude 会根据你的请求自动调用:
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
2026-04-06 19:01:37 +08:00
|
|
|
|
你:"我需要创建一个新的 Spring Boot 微服务"
|
|
|
|
|
|
Claude:[自动加载 creating-springboot-projects 技能]
|
2026-04-06 15:47:33 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
也可以显式请求某个技能:
|
2026-04-06 15:47:33 +08:00
|
|
|
|
```
|
2026-04-06 19:01:37 +08:00
|
|
|
|
你:"使用 spring-data-jpa 技能优化这个 Repository"
|
2026-04-06 15:47:33 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Codex
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
技能需要使用 `$skill-name` 语法手动调用:
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
using $creating-springboot-projects create a new order service
|
|
|
|
|
|
using $spring-data-jpa optimize this repository code
|
|
|
|
|
|
using $springboot-migration upgrade to Spring Boot 4
|
|
|
|
|
|
using $code-reviewer review this service implementation
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
如需引用详细参考章节,请包含路径:
|
2026-04-06 15:47:33 +08:00
|
|
|
|
```
|
|
|
|
|
|
using $spring-data-jpa and ~/.codex/skills/spring-data-jpa/references/dto-projections.md implement efficient queries
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 可用技能
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
### creating-springboot-projects
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
通过几个问题了解你的项目,然后从一开始就构建正确的架构。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
你将获得:评估驱动的脚手架生成、Spring Initializr 配置,以及值对象、富实体、CQRS 模式、转换器等模板——根据所选架构按需提供。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**快速评估涵盖:**
|
|
|
|
|
|
- 领域复杂度(CRUD vs. 业务规则)
|
|
|
|
|
|
- 团队规模和项目生命周期
|
|
|
|
|
|
- 类型安全需求
|
|
|
|
|
|
- 限界上下文
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
### spring-data-jpa
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
帮助你写出六个月后也不会拖慢系统的 JPA 代码。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
涵盖查询模式、DTO 投影、自定义 Repository、CQRS 查询服务,以及最终会坑到所有人的性能反模式(为每个实体建 Repository、方法名查询地狱、盲目调用 `save()`)。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
### springboot-migration
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
逐步迁移到 Spring Boot 4 + Java 25(支持 Spring Modulith 2 和 Testcontainers 2)。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
先扫描你的项目,再分阶段引导完成依赖 → 代码 → 配置的迁移。包含重试/韧性模式以及每个升级目标的参考文档。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
### code-reviewer
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
对你的 Boot 4 / Java 25 项目进行架构适配性和性能问题的全面检查。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
涵盖五种架构模式(何时使用、何时避免),以及事件、CQRS、Modulith 边界的检查清单。能发现 N+1 查询、缺失缓存、虚拟线程锁定等性能陷阱。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
当你需要第二意见,或需要判断是否到了演进架构的时候,使用此技能。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 使用示例
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**"我需要一个基本 CRUD 的产品 REST API。"**
|
|
|
|
|
|
→ 询问你的领域、团队和时间线,建议分层架构,生成脚手架。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**"我需要一个包含支付和库存规则的订单服务。"**
|
|
|
|
|
|
→ 评估复杂度,推荐 Tomato 架构,生成值对象、富实体、CQRS 服务。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**"我的产品搜索很慢。"**
|
|
|
|
|
|
→ 分析查询,发现 N+1 问题,重构为 DTO 投影。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**"我们需要从 Boot 3 迁移到 Boot 4。"**
|
|
|
|
|
|
→ 运行迁移扫描器,规划分阶段升级(依赖 → 代码 → 配置),逐步应用并验证。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**"能帮我们审查 Boot 4 服务是否有问题吗?"**
|
|
|
|
|
|
→ 检查架构模式适配性,排查性能问题(N+1、缺失缓存、虚拟线程锁定、实体泄漏)。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 模板与资源
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**架构模板**(`creating-springboot-projects/assets/`)
|
|
|
|
|
|
值对象、富实体、CQRS 服务、转换器、REST 控制器、Flyway 迁移、Testcontainers、ProblemDetail 处理器。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**JPA 模板**(`spring-data-jpa/assets/`)
|
|
|
|
|
|
查询 Repository、DTO 投影、自定义 Repository、CQRS 查询服务、关联关系模式。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**审查参考**(`java25-springboot4-reviewer/references/`)
|
|
|
|
|
|
架构模式、决策矩阵、性能检查清单。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**参考指南**(`spring-data-jpa/references/`)
|
|
|
|
|
|
查询模式、投影、自定义 Repository、关联关系处理、性能调优。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 测试技能
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
想验证技能是否按预期工作?请查看 `tests/` 目录中的基线场景。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**快速开始:**
|
2026-04-06 15:47:33 +08:00
|
|
|
|
```bash
|
2026-04-06 19:01:37 +08:00
|
|
|
|
# 5 分钟内运行一个场景
|
2026-04-06 15:47:33 +08:00
|
|
|
|
cd tests
|
|
|
|
|
|
cat QUICKSTART.md
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
**完整测试套件:**
|
|
|
|
|
|
- 8 个基线场景,测试每个技能的核心行为
|
|
|
|
|
|
- RED-GREEN-REFACTOR 方法论
|
|
|
|
|
|
- 合理化追踪
|
|
|
|
|
|
- 完整测试指南见 `tests/README.md`
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
基于 [terraform-skill 测试方法](https://github.com/antonbabenko/terraform-skill/blob/master/tests/baseline-scenarios.md)。
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 前置条件
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
- Claude Code CLI
|
|
|
|
|
|
- Java 25
|
2026-04-06 19:01:37 +08:00
|
|
|
|
- Maven 或 Gradle
|
|
|
|
|
|
- 熟悉 Spring Boot 4.0+
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 演进路径
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
从简单开始,按需演进:
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
|
|
|
|
|
```text
|
2026-04-06 19:01:37 +08:00
|
|
|
|
分层架构 → 按模块分包 → 模块化单体 → Tomato → DDD+六边形
|
2026-04-06 15:47:33 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
## 致谢
|
2026-04-06 15:47:33 +08:00
|
|
|
|
|
2026-04-06 19:01:37 +08:00
|
|
|
|
- 架构模式:[Siva Prasad Reddy](https://github.com/sivaprasadreddy)
|
|
|
|
|
|
- Spring Boot 4 特性:[spring-boot-4-features](https://github.com/sivaprasadreddy/spring-boot-4-features)
|
|
|
|
|
|
- 模块化单体参考:[spring-modular-monolith](https://github.com/sivaprasadreddy/spring-modular-monolith)
|
|
|
|
|
|
- 市场灵感来源:[sivalabs-marketplace](https://github.com/sivaprasadreddy/sivalabs-marketplace)
|
|
|
|
|
|
- JPA/Hibernate 最佳实践:[Vlad Mihalcea](https://vladmihalcea.com/blog/)
|