java - 在 Spring 使用多个服务/ Controller

标签 java spring rest spring-mvc

我正在java中使用spring,我正在尝试为我的程序创建一个rest-API。我有 3 个实体要管理,所以我也有 3 个 DAO 类。 我的问题是我有两种类型的用户(玩家和管理员)。他们每个人都可以对每个实体/表执行不同的操作。 我的问题是实现这些要求的最佳方法是什么。 我应该有 3 个服务和 3 个 Controller (每个实体/表一个)还是应该创建 2 个服务和 2 个 Controller (每种类型的用户一个)或者也许有比我建议的更好的方法? p>

编辑: 另一件可能很重要的事情是,我需要验证服务中的数据,验证过程检查表中的连接,因此在每个服务中,我还需要为不同实体提供 Dao 对象(例如检查新操作是否有一个发生操作的元素。

最佳答案

听起来您可能会为不同类型的用户提供不同的功能。这就是管理员可以做玩家不能做的事情的一点。因此,将会有单独的特定于管理的服务方法,玩家使用的 Controller 不需要将管理服务连接到其中。

此外,交易的本质是它们通常不特定于某个实体,通常您想要在同一交易中处理不同的实体。如果是这样,那么为每个实体提供不同的服务可能没有意义。

在 Controller 级别,使用 Spring Security 强制谁可以调用哪个端点。我会根据共享足够多共同点的内容将 Controller 端点组织成类,但如何分解它并不是什么大问题。

对于服务,我将拥有一项为普通玩家实现逻辑的服务,以及一项实现管理员功能的服务。如果其中任何一个都有很多代码,那么我会考虑将其分解为单独的服务,并保留包含普通玩家与管理员方法的服务之间的区别。

关于java - 在 Spring 使用多个服务/ Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55751022/

相关文章:

java - 如何更改 Java 中的标签颜色?

java - Java 升级后,NTLM 不再与 Java WebStart 一起使用

java - 为什么当字段上的 updatable=false 时 hibernate 做 areEqual

java - Spring MVC请求映射冲突

java - Spring任务执行器安排了太多的任务实例

java - Scala编译时错误: No implicits found for parameter evidence$2: BodyWritable[Map[String,对象]]

java - 根据值对 Map 内的 HashMap 进行排序

java - 我如何在我的 JAR 中 bundle JRE,以便它可以在没有 Java 的系统上运行?

php - 从数据库模型快速构建 REST API

javascript - 如何在 Mocha 中维护两个请求之间的 session