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