gpt4 book ai didi

java - DDD - java 9 模块项目组织

转载 作者:行者123 更新时间:2023-12-01 22:13:56 27 4
gpt4 key购买 nike

我正在尝试使用 java 9 中的六边形架构(使用 maven 模块)来组织 DDD 项目。是否有已经在生产系统中使用的工作示例?到目前为止,我只知道如何做到这一点:

这里我有domain模块,其中包含所有命令、事件、域模型(具有聚合、实体和值对象)以及存储库接口(interface)+域服务接口(interface)(如果在基础设施上中继)和实现。其他 application 模块包含应用程序服务,其中我有应用程序的“用例”(编排聚合加载的简单方法等)。

现在这些十六进制架构的适配器怎么样?每个适配器是否应该在模块中分开(例如,我可以在其中实现依赖于基础设施的存储库的 mysql-adapter?此外,为rabbitmq聚合提供单独的模块?

任何这方面的例子都很棒!

enter image description here

最佳答案

我正在使用 java 9 和 maven 编写一个六边形架构示例。还没有完成,完成后我会发布。

但到目前为止我可以告诉你我的方法:

  • 六边形的一个模块(不需要其他模块)。对于每个端口,我都有一个模块导出的包。

  • 每个适配器一个模块。需要六边形模块。

  • 一个主模块。需要六角形和所有适配器模块。没有其他模块需要主模块。它构建整个系统并运行驱动程序适配器。

为了为每个驱动端口选择一个适配器,我使用了服务加载器机制。

<小时/>

在此示例中我没有使用 DDD,但如果使用它,结构将是:

  • 六边形将是一个聚合器模块(无源代码),只有 2 需要传递到应用程序模块和域模块。

  • 应用程序模块需要域模块。它导出的包是驱动程序端口(用例),也可能是驱动端口(由驱动适配器实现。

  • 域不需要模块。它导出作为驱动端口的包。

<小时/>

我推荐 Sander Mark 和 Paul Bakker 所著的《Java 9 Modularity》一书。

我将在以下位置发表文章

https://softwarecampament.wordpress.com/portsadapters/

还有我在 github 上的示例,如果你想在完成后看一下。

关于java - DDD - java 9 模块项目组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58640383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com