name: ddd4j-project-creator description: | 一个全面的技能,用于基于ddd4j-boot框架创建新的ddd4j(Java领域驱动设计)项目。 仅当用户明确提到创建ddd4j项目、初始化ddd4j项目或设置ddd4j-boot项目时使用。支持三种项目类型:单模块单体、多模块单体和微服务。 基于ddd4j-boot架构生成项目脚手架,包含DDD、六边形架构、整洁架构和COLA V5模式。不要为通用DDD项目、JPA/Hibernate项目或其他ORM框架触发,除非明确提到ddd4j。 license: 完整条款见LICENSE.txt
DDD4j 项目创建器
何时使用此技能
关键:此技能应仅在用户明确提到创建ddd4j项目、初始化ddd4j项目或设置ddd4j-boot项目时触发。
当用户提到以下内容时总是使用此技能:
- 创建ddd4j项目(明确提到“ddd4j”)
- 初始化ddd4j-boot项目
- 设置ddd4j项目结构
- 创建ddd4j项目脚手架
- 创建ddd4j项目(明确提到“ddd4j”)
- 初始化ddd4j项目(初始化ddd4j项目)
- ddd4j-boot项目创建(创建ddd4j-boot项目)
触发短语包括:
- “创建ddd4j项目”(创建ddd4j项目)- 必须包含“ddd4j”
- “初始化ddd4j项目”(初始化ddd4j项目)- 必须包含“ddd4j”
- “创建ddd4j-boot项目”(创建ddd4j-boot项目)- 必须包含“ddd4j”
- “使用ddd4j创建项目”(使用ddd4j创建项目)
- “ddd4j项目脚手架”(ddd4j项目脚手架)
不要为此触发此技能:
- 未提到ddd4j的通用DDD项目
- JPA/Hibernate项目
- 其他ORM框架
- 无ddd4j上下文的通用项目初始化
- “创建DDD项目”未包含“ddd4j”(太通用)
- “初始化项目”未包含“ddd4j”(太通用)
关于DDD4j Boot
DDD4j Boot 是一个基于**领域驱动设计(DDD)**原则的Java微服务开发脚手架。它基于Spring Boot 3.5.x构建,并使用轻量级的ddd-4-java和cqrs-4-java库来实现领域驱动设计、命令查询职责分离(CQRS)和事件溯源。
核心设计原则
- 领域驱动设计(DDD):通过限界上下文进行战略设计,使用实体、值对象、聚合、领域服务、存储库和领域事件进行战术设计
- 命令查询职责分离(CQRS):读写模型分离,独立优化
- 事件溯源:状态变化记录为事件序列,支持完整历史和状态重建
- 菱形架构(COLA):适配器 → 应用 → 领域 ← 基础设施四层架构
关键特性
- 完整的DDD分层架构,支持COLA V5模式
- 基于ddd-4-java和cqrs-4-java的轻量级DDD实现
- 技术栈集成:Spring Boot 3.5.x、MyBatis Plus、Jackson、Guava、Swagger、SaToken
- 双栈支持:WebMVC(传统Servlet)和WebFlux(响应式)
- 领域模型基础能力:BaseEntity、BaseRepository、BaseService
- 领域事件支持,内置事件发布机制
- 防腐层(ACL)用于外部服务集成
- 统一异常处理机制
支持的项目类型
1. 单模块单体(单体单模块)
适用场景:中小型应用,单个业务领域,团队规模5-15人
特点:
- 单一Maven模块
- 所有层(接口、应用、领域、基础设施)在同一模块内
- 适合快速开发和部署
2. 多模块单体(单体多模块)
适用场景:中大型应用,多个业务域,团队规模15-50人
特点:
- 多个Maven模块,按业务域划分
- 每个业务域包含完整的DDD四层架构
- 共享common模块
- 统一BOM和依赖管理
3. 微服务(单体微服务)
适用场景:大型电商平台,多个业务域,团队规模50+人
特点:
- 每个服务独立部署
- 服务间通过RPC和消息队列通信
- 每个服务内部按DDD四层架构组织
- 独立的数据库和配置
如何使用此技能
关键:此技能应仅在用户明确提到创建ddd4j项目时触发。不要为无ddd4j上下文的通用DDD项目创建请求触发。
用于新DDD4j项目创建
-
从用户需求识别项目类型:
- 单模块单体 →
single-module - 多模块单体 →
multi-module - 微服务 →
microservices
- 单模块单体 →
-
从
examples/目录加载适当的示例:examples/single-module.md- 单模块单体结构examples/multi-module.md- 多模块单体结构examples/microservices.md- 微服务结构examples/architecture-patterns.md- DDD、六边形、整洁、COLA V5模式
-
收集项目信息:
groupId:Maven组ID(例如,com.github.hiwepy或io.ddd4j.base)artifactId:Maven工件ID(例如,ddd4j-douyin或my-ddd4j-service)version:项目版本(例如,1.0.0-SNAPSHOT)parentVersion:父POM版本(例如,2023.0.x.20251205-SNAPSHOT或引用ddd4j-boot-parent)packageBase:基础包名(例如,io.ddd4j.douyin或com.example.service)modules:业务模块列表(用于多模块/微服务)architecture:架构模式(DDD经典、六边形、整洁、COLA V5)ddd4jBootVersion:DDD4j Boot版本(如果使用ddd4j-boot-bom)
-
生成项目结构:
- 基于选定类型创建目录结构
- 生成
pom.xml文件(父和模块) - 为每个模块创建
package-info.java文件 - 生成
.gitignore、LICENSE、mvnw、mvnw.cmd - 创建基本目录结构,包含
src/main/java和src/test/java
-
保存到项目目录:
- 默认位置:直接保存到命令执行目录(与命令同一级别)
- 目录创建:自动创建项目目录结构,如果不存在
- 文件命名:基于项目类型和模块名称使用描述性名称
用于现有项目验证
-
分析项目结构:
- 扫描项目目录寻找Maven模块
- 识别层结构(接口、应用、领域、基础设施)
- 检查包命名约定
- 验证目录组织
-
识别项目类型:
- 单模块:根目录单个
pom.xml,所有层在一个模块中 - 多模块:父
pom.xml带多个模块,每个模块有完整层 - 微服务:多个服务,每个有独立结构
- 单模块:根目录单个
-
对照标准验证:
- 检查DDD层合规性
- 验证依赖方向(接口 → 应用 → 领域 ← 基础设施)
- 验证包命名(
{basePackage}.{module}.{layer}) - 检查必需目录(
src/main/java、src/test/java) - 验证
package-info.java文件存在
-
生成验证报告:
- 列出识别的问题
- 提供建议
- 为非合规结构建议修复
输出格式和文件保存
生成项目结构时,遵循此响应结构:
-
先保存文件:直接在命令执行目录创建项目结构
- 项目将在与命令执行同一级别的位置创建
- 生成所有必需文件和目录(pom.xml、src/等)
- 使用artifactId作为项目根目录名称
-
通知用户:告诉他们文件保存的位置
-
显示结构:在代码块中显示生成的目录结构
示例响应结构:
- 第一行:“我已创建DDD项目结构并保存到当前目录的
./{artifactId}/。” - 然后显示包裹在代码块中的结构:
- 开始:三个反引号 +
text+ 换行 - 然后目录结构
- 结束:三个反引号 + 换行
- 开始:三个反引号 +
关键要求:
- 始终直接将项目文件保存到命令执行目录(同一级别)
- 使用artifactId作为项目根目录名称
- 自动创建目录结构,如果不存在
- 生成完整的项目结构,包含所有必需文件
- 严格遵守Maven和DDD约定
项目结构标准
包命名约定
对于多模块项目:
{basePackage}.{moduleName}.{layerName}
示例:
io.ddd4j.douyin.api.domain- API模块,领域层io.ddd4j.douyin.api.application- API模块,应用层io.ddd4j.douyin.api.interfaces- API模块,接口层io.ddd4j.douyin.api.infrastructure- API模块,基础设施层
必需文件
每个模块必须有:
pom.xml- Maven配置src/main/java/{package}/package-info.java- 包文档src/test/java/- 测试目录结构.gitignore- Git忽略规则(在根目录)LICENSE- 许可证文件(在根目录)mvnw、mvnw.cmd- Maven包装器(在根目录)
层依赖
正确的依赖方向:
接口 → 应用 → 领域 ← 基础设施
规则:
- 领域层不得依赖于任何其他层
- 基础设施层实现领域层接口
- 应用层依赖于领域层
- 接口层依赖于应用层
架构模式
此技能支持四种架构模式:
-
DDD经典分层架构(DDD经典分层架构)
- 层:接口、应用、领域、基础设施
- 参考:
docs/1、DDD 经典分层架构目录结构.md和examples/architecture-patterns.md#ddd-classic
-
六边形架构(六边形架构)
- 端口和适配器模式
- 参考:
docs/2、六边形架构详细目录结构参考.md和examples/architecture-patterns.md#hexagonal
-
整洁架构(整洁架构)
- 实体、用例、接口适配器
- 参考:
docs/3、整洁架构详细目录结构参考.md和examples/architecture-patterns.md#clean
-
COLA V5(菱形架构)
- 适配器 → 应用 → 领域 ← 基础设施
- 参考:
docs/4、COLA V5 架构详细目录结构参考.md和examples/architecture-patterns.md#cola-v5
验证规则
检查现有项目时,验证:
-
结构合规性:
- ✓ 正确的层组织
- ✓ 适当的模块分离
- ✓ 包命名约定
-
依赖规则:
- ✓ 领域层无外部依赖
- ✓ 基础设施实现领域接口
- ✓ 正确的依赖方向
-
文件组织:
- ✓ 必需目录存在
- ✓
package-info.java文件存在 - ✓ Maven配置正确
-
命名约定:
- ✓ 包名遵循约定
- ✓ 模块名称描述性
- ✓ 层名称标准
示例
见examples/目录:
single-module.md- 完整的单模块单体示例multi-module.md- 完整的多模块单体示例(基于ddd4j-douyin结构)microservices.md- 完整的微服务示例architecture-patterns.md- 所有四种架构模式,带详细结构
关键词
英文关键词: ddd4j, ddd4j-boot, ddd4j project, create ddd4j project, initialize ddd4j project, ddd4j project creator, ddd4j project scaffolding, ddd4j-boot project, ddd4j project structure, ddd4j-boot initialization, ddd4j microservice, ddd4j monolith
中文关键词(中文关键词): ddd4j, ddd4j-boot, ddd4j项目, 创建ddd4j项目, 初始化ddd4j项目, ddd4j项目创建, ddd4j项目脚手架, ddd4j-boot项目, ddd4j项目结构, ddd4j-boot初始化, ddd4j微服务, ddd4j单体应用
重要:所有关键词必须包含“ddd4j”以避免误触发。通用术语如“DDD项目”(DDD项目)或“创建项目”(创建项目)未包含“ddd4j”不应触发此技能。