【问题标题】:Is it appropriate to make /service classes @RestController's制作/service 类@RestController 是否合适
【发布时间】:2018-01-05 03:57:31
【问题描述】:

我从文档中了解 entityservice 创建之间的区别。我很想简单地用 @RestController/@RequestMapping/@[http-method]Mapping 装饰我的服务,就像装饰 /web/rest/resources/* 以公开新的 rest api 方法一样......也许使用“ /api/srv/" 区分服务级api资源?它似乎有效......当我这样做时,装饰的服务方法会以大摇大摆的形式出现,等等。我想我只是在寻找一个健全性检查,我没有违反框架约定或误解 /service 类的预期用途.

【问题讨论】:

    标签: spring rest jhipster


    【解决方案1】:

    这实际上归结为责任分离。您可以将任何类公开为@RestController,无论它是真实的Controller 还是服务,甚至是Dao

    但是,大多数时候,我们希望每一层都做自己的事情。

    • Controller 层处理 http 请求/响应(请求参数/正文、响应代码/正文等...)并分派到不同的Service 层方法。
    • 服务层负责真正的业务逻辑,并调用DAO层来检索业务逻辑计算所需的数据。
    • Dao 层最终负责访问具有查询/休眠/jpa 细节的数据库。

    如您所见,每一层都在尝试做自己的事情,并将依赖关系与其他层隔离开来。像控制器层处理与 http 相关的东西,因此其他层不必携带 Servlet 依赖项。 DAO 也是如此,因此其他层不需要了解有关数据持久性的任何细节。

    至于swagger,它只是分析您的代码和注释并暴露控制器层中的任何内容。 :)

    总而言之,恕我直言,仍然建议使用@RestController 注释您的真实控制器类,并让您的Service 处理实际业务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多