Skip to content

Repository files navigation

Atom Archetype

Maven Central CI Java 25 Spring Boot 4.1 License: MIT

简体中文 | English

Atom Archetype 是一个基于 Java 25 和 Spring Boot 4.1 的 Maven Archetype,用于生成采用领域驱动设计(DDD)的多模块项目。

生成结果是标准 Maven 工程。领域、应用和基础设施模块之间的依赖边界已经配置好,示例代码可以直接修改或删除。

版本说明

  • 2.1.0 是当前稳定版,Archetype 开发和生成项目均使用 JDK 25。
  • v2.0.0 是 Java 21 版本的旧标签。
  • Maven Central 1.1.0 属于 Spring Boot 3.5 旧架构。

以下快速开始直接使用 Maven Central 上的 2.1.0。

快速开始

需要 JDK 25、Docker 和 Docker Compose v2。仓库及生成项目均提供 Maven Wrapper 3.9.16;如果使用系统 Maven,请使用 3.9.16 或更高版本。

1. 生成项目

mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.4.1:generate \
  -DarchetypeGroupId=io.github.archetom \
  -DarchetypeArtifactId=atom-archetype \
  -DarchetypeVersion=2.1.0 \
  -DgroupId=com.example.orders \
  -DartifactId=orders-service \
  -Dpackage=com.example.orders \
  -Dversion=1.0.0-SNAPSHOT

2. 构建并运行

cd orders-service
docker compose up -d mysql
sh ./mvnw clean install

ATOM_SECURITY_TRUSTED_HEADER_ENABLED=true \
  sh ./mvnw -f start/pom.xml spring-boot:run -Dspring-boot.run.profiles=dev

应用启动后可检查健康端点:

curl http://localhost:8080/actuator/health

开发身份请求头、Redis 和生产配置见快速上手。

生成内容

  • domain、application、api 与基础设施模块之间的依赖边界。
  • 显式的 AuthenticatedCaller 和 TenantId,仓储与缓存按租户访问。
  • MyBatis-Plus 3.5.17、Flyway 和 MySQL 26.7.0。
  • Spring Security、SpringDoc OpenAPI 3.1.0 和统一的 HTTP 错误映射。
  • 默认关闭的 Redis 8.10.0 缓存适配器,以及对应的空实现。
  • 独立的命令事务与只读查询快照事务、事务提交后回调和 Testcontainers 集成测试。
  • 具名分页响应、稳定并发错误,以及会自动编译和测试生成项目的 Archetype 回归测试。

业务 API 默认需要认证。开发身份请求头仅适用于显式启用的 dev、test 环境;生产环境应接入自己的身份系统。

项目结构

模块 职责
api 对外请求、响应、Facade 契约和调用者上下文
domain 聚合、值对象、领域事件、仓储与领域服务端口
shared 框架中立的结果与错误类型
application 用例编排、命令/查询模板、事务回调和输出端口
infra/rest Spring MVC、Spring Security、OpenAPI 和错误映射
infra/persistence MyBatis-Plus、Flyway 和缓存适配器
infra/external 第三方系统适配器
infra/security 密码哈希等安全适配器
infra/facade Facade 契约实现
start Spring Boot 启动入口和运行时装配

domain 不依赖 application、api、shared 或任何 infra 模块。完整规则见架构设计。

文档

开发

模板位于 src/main/resources/archetype-resources/,元数据位于 src/main/resources/META-INF/maven/archetype-metadata.xml。

make install
make demo
cd target/generated-projects/atom-demo
sh ./mvnw compile
CI=true sh ./mvnw test   # 需要 Docker

修改模板后需要同时验证 Archetype 生成过程和生成后的 Maven Reactor。

贡献

提交改动前请阅读贡献指南和安全策略。Issue 和 Pull Request 可以直接提交到本仓库。

许可证

MIT

About

Java DDD 风格脚手架

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages