域驱动设计中依赖注入的最佳位置

Bab*_*kar 6 design-patterns domain-driven-design dependency-injection

在DDD的上下文中,我理解应用程序服务编排域Service和Repository(应用程序工作流),现在我的问题是哪个层负责注入依赖项,依赖注入必须在UI(使用应用程序服务的层)或在应用服务中.例如,在具体的存储库注入的情况下哪个层应该这样做?

另一个问题是,我可以将应用程序服务代码直接放在Web服务中并将该Web服务用作应用程序服务层吗?

最好的祝福

Con*_*enu 5

...依赖注入必须在UI(使用应用程序服务的层)或Application Service中完成.例如,在具体的存储库注入的情况下哪个层应该这样做?

应尽可能使用依赖注入容器.通常,这意味着在应用程序的引导程序中,甚至在UI之前.

例如,在具体的存储库注入的情况下哪个层应该这样做?

首先在Composition根中调用的层,即整个应用程序的入口点.

另一个问题是,我可以将应用程序服务代码直接放在Web服务中并将该Web服务用作应用程序服务层吗?

这在很大程度上取决于您的架构以及什么是"Web服务".如果您指的是分层体系结构:如果它类似于REST控制器,那么NO,在这种情况下,"Web服务"位于表示层中,而应用程序服务位于应用程序层中.Application层包含所有用例,每个Application服务都是一个用例.在这里阅读更多.