java 清洁架构和Sping Boot

1cosmwyk  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(274)

我正在使用Clean Architecture实现Sping Boot 微服务。我有一个多模块的Java应用程序,域,应用程序和基础设施。
域和应用程序模块对Spring框架一无所知。在域中,我有我的模型,例外等。但这是纯Java。在应用程序中,我有我的输入和输出端口以及实现这些端口的应用程序服务。
在基础设施方面,我有你能想象到的一个Sping Boot 应用程序所需要的一切。我的问题是,我有我的DomainModel,在基础设施中,我创建了一个DomainJpaEntity类,它基本上是我的域模型的孪生兄弟,但在这里,我可以使用所需的注解将表Map到实体。每次我需要将实体转换(Map)到我的域模型,以便使用端口(因为它们总是期望域模型作为参数)
最近,我偶然发现了另一个问题。我有一个DomainModelJpaAdapter,它基本上用Jpa实现了PersistenceOutputPort。我想测试一个方法,我想检查我的实体的乐观锁定,但由于适配器总是返回域模型,我没有“版本”字段在我的域模型…而且感觉也不对。
有没有人用这种方式实现过清洁架构?或者你也允许应用层有关于Spring的信息?

t98cgbkg

t98cgbkg1#

有没有人用这种方式实现过清洁架构?
是的,第一次。太过分了。而且我确实将版本存储在域模型中。
或者你也允许应用层有关于Spring的信息?
我就是这么做的。例如,我的JPA实体也是我的域模型。这避免了繁琐和容易出错的转换。ORM的目标已经是抽象持久层。不需要在上面添加抽象。

相关问题