用途:当项目采用六边形(端口与适配器)架构时使用,确保领域层保持纯 Java、零框架依赖,避免领域代码依赖 Spring 或 JPA。
主要能力:给出标准包结构,分为 domain(纯 Java,含 model、port/in、port/out、service)、application(编排用例,允许使用 Spring)、infrastructure(持久化、Web、外部适配器)。明确端口分为驱动端口(port/in,应用对外提供的用例接口)与被驱动端口(port/out,应用需要的外部接口)。
使用方式:领域模型不加注解,仅暴露 getter;端口只定义接口;用例实现放在 application 层并可用 @Service、@Transactional;基础设施层实现领域端口,如 JpaOrderRepository 实现 OrderRepository,控制器作为驱动适配器注入用例端口。
限制与常见问题:领域类不得导入 javax.persistence;用例不得直接注入 JpaRepository,应使用领域端口接口;@Transactional 应放在应用层而非领域服务;不要混淆驱动与被驱动端口;避免只有 getter/setter 的贫血领域模型,行为应放在领域对象上。具体安装命令与更多配置暂未提供。