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

pre*_*oid 4 spring spring-mvc

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

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

2)模型/实体调用服务是正确的做法(例如在设置者中)?我不这么认为.

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

Pra*_*ede 5

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

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

我想你可以从另一个服务中调用服务.在您的应用程序中,您可以使用一些泛型功能,例如findUserByEmail(String email).这项服务可以做:检查电子邮件是否有效(即使它是从前端完成),搜索(调用DAO找到客户),管理异常,它也可以做一些工作).您知道可以从许多服务中调用此服务.这对于不要重复自己(DRY)原则并避免重复代码很有用.

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

2)模型/实体调用服务是正确的做法(例如在设置者中)?我不这么认为.

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

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

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