SuperAPI AI 工具集

hexagonal-architecture-layers-java

编程与开发

查看项目

更新于 10-15 21:50

技能介绍

用途:在编写或重构 Java 服务时,按六边形架构(端口与适配器)组织分层。适用于设计具备清晰可测层次的新服务、把 Spring 代码重构为领域与框架解耦、支持多适配器(REST 与消息、JPA 与 Mongo),以及强制依赖方向和模块边界。

主要能力与三个核心模式:Pattern 1 Domain is pure(领域纯净,无框架注解、无持久化关注、无 I/O);Pattern 2 Application orchestrates(应用层定义用例与端口,调用领域逻辑并把 I/O 委托给端口);Pattern 3 Infrastructure adapts(基础设施实现端口并装配适配器,如控制器、仓储、客户端)。

使用方式:领域层放模型,例如 record OrderId 与类 Order;应用层定义输入端口(如 PlaceOrderUseCase)与输出端口(如 OrderRepositoryPort),由 PlaceOrderService 实现用例并依赖端口;基础设施层实现端口并完成装配,例如 OrderJpaAdapter 实现 OrderRepositoryPort,类上使用 @Repository。

应避免的反模式:不要把框架注解放进领域(如领域类上使用 @jakarta.persistence.Entity 与 @Id);不要让领域直接依赖基础设施(如领域类持有 SpringOrderRepository)。

限制与补充:资料未提供具体构建工具、依赖版本、测试步骤或应用配置;所述 Spring 与 JPA 用法为示例性质。相关延伸阅读为 Alistair Cockburn 的六边形架构文章与《Clean Architecture》。