有关设计的问题,从另一项服务调用服务?

时间:2015-10-06 13:09:16

标签: spring spring-mvc

我使用spring设计REST apis,我对设计有几个问题。我目前的项目包括控制器,服务,模型和Daos。

1)从其他服务调用服务是否可以?或者保持服务独立于所有其他服务更好?我认为有时需要从另一个服务引用服务。

2)模型/实体调用服务(例如在setter中)是否正确?我不这么认为。

3)模型/实体调用dao(例如在setter中)是否正确?我也不这么认为。

1 个答案:

答案 0 :(得分:5)

我会尝试回答第一个问题。

1.可以从其他服务中调用服务吗?或者保持服务独立于所有其他服务更好?我认为有时需要引用另一个服务。

我认为您可以从其他服务中调用服务。在您的应用程序中,您可以使用某些泛型功能,例如listX n = xs if sum[x | x <- [2, 4..n-1], y <- [1..n-1], y `rem` x == 0] == y then insert y xs else return () 。这项服务可以做到: 检查电子邮件是否有效(即使是从前端完成),搜索(调用DAO以查找客户),管理异常,它也可以做一些工作)。您知道可以从许多服务中调用此服务。这对于不要重复自己(DRY)原则并避免重复代码很有用。

对于这两个问题,你是对的。

2)模型/实体调用服务(例如在setter中)是否正确?我不这么认为。

3)模型/实体调用dao(例如在setter中)是否正确?我也不这么认为。

在setter中调用dao或服务不是一个好习惯。如果你想设置对象属性,你可以构建一个dao和服务,它返回根据你的需要设置的对象。

我希望我的回答能给你一些有用的信息