您是否应该在另一个域的服务层中访问另一个域的存储库层?

时间:2018-10-19 11:57:06

标签: spring-boot domain-driven-design microservices

我有两个域,域A和域B。每个域在Spring Boot项目中都有自己的控制器,服务和存储库层。让服务A调用存储库B的数据是否是错误的?这会破坏任何形式的DDD或微服务架构吗?

1 个答案:

答案 0 :(得分:2)

当Controller绕过Service时,此组织通常称为松弛分层体系结构,因为允许各层在其相邻邻居之间跳过:

Relaxed layered architecture

根据Clean Architecture,第34章:

  

不希望绕过业务逻辑层,特别是如果   业务逻辑负责确保授权访问   单个记录,例如

  

Web控制器绝对不能直接访问存储库

因此,根据您的情况,Service A应该无法直接调用Repository B的数据。所有通信都应通过Controller B完成。