spring - 关于设计的问题,从另一个服务调用服务?

标签 spring spring-mvc

我正在使用 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/

相关文章:

Java 从 jar 文件加载图像

java - 找不到 org.springframework.hateoas.config.EnableHypermediaSupport$HypermediaType 的类文件

java - 如何在仅使用注释实现相同接口(interface)的不同类中使用@autowired

java - 为私有(private)静态内部类注入(inject)bean

java - lambda 中的控制反转

java - Spring Bean 配置 : How to mark beans as mandatory/optional?

java - objectMapper 将印地语文本转换为特殊字符 "???"

java - handleRequestInternal 和 handleRequest 的区别

java - 如何将基于 Spring 的 RESTful 服务作为 Servlet 添加到 Tomcat

java - spring 序列化类中的每个属性(延迟加载?)