Spring层存储库和服务,最佳实践

时间:2018-08-14 08:53:48

标签: java spring design-patterns architecture repository-pattern

将存储库层用作服务层的最佳实践是什么?

Repository1 -> Service1 - \
                             > Service3
Repository2 -> Service2 - /

OR

Repository1 -\ 
               > Service1 
Repository2 -/

3 个答案:

答案 0 :(得分:1)

我更喜欢您的第一个解决方案。一个存储库->一个服务。

SOLID 助记符中的

S是单一职责原则。

如果您向一项服务注入两个存储库,则不是每个课程一项责任。

答案 1 :(得分:1)

我认为解决方案2很好。

服务可以执行需要2-3个存储库的事务。 从用户的角度来看,服务更像是一项交易。

那是我的想法。

答案 2 :(得分:1)

这取决于您的代码样式: 您可以按组件或逻辑流程进行编码。从答案中可以看出,这是完全有争议的。更加模块化的方法是通过某种特征将实现完全分开。但总的来说,更重要的是:您必须在团队中编码还是“单人项目”?如果这是您的项目,请按照您认为更好的方式执行(组件,逻辑流程),但是如果您是团队成员,则必须模块化。许多程序员更喜欢在不使用dao层(甚至服务)的情况下集中精力编写代码,因此代码虽然更轻巧,但是却很杂乱!作为个人选择,我喜欢第二个示例。