我正在使用 spring 设计 REST api,我有几个关于设计的问题。我当前的项目由 Controller 、服务、模型和道组成。
1)可以从另一个服务调用一个服务吗?还是让服务独立于所有其他服务更好?我认为有时需要从另一个服务中引用服务。
2)模型/实体调用服务(例如在setter内部)是否正确?我不这么认为。
3)模型/实体调用dao(例如在setter中)是正确的做法吗?我也不这么认为。
最佳答案
我将尝试回答第一个问题。
1.可以从另一个服务调用一个服务吗?还是让服务独立于所有其他服务更好?我认为有时需要从另一个服务中引用服务。
我认为你可以从另一个服务调用一个服务。在您的应用程序中,您可以拥有一些泛型特性,例如 findUserByEmail(String email)
.这项服务可以:
检查电子邮件是否有效(即使是从前端完成的),搜索(调用 DAO 查找客户),管理异常,它也可以做一些工作)。您知道可以从许多服务中调用此服务。这对于遵循 Dont Repeat Yourself (DRY) 原则和避免重复代码很有用。
对于这两个问题,你是对的。
2)模型/实体调用服务(例如在setter内部)是否正确?我不这么认为。
3)模型/实体调用dao(例如在setter中)是正确的做法吗?我也不这么认为。
在 setter 中调用 dao 或服务不是一个好习惯。如果你想设置对象属性,你可以构建一个 dao 和服务,它返回根据你的需要设置的对象。
希望我的回答能给你一些有用的信息
关于spring - 关于设计的问题,从另一个服务调用服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32970873/