是否适合制作/服务类@ RestController

问题描述 投票:0回答:1

我从文档中了解到entityservice创作之间的区别。我很想用@ RestController / @ RequestMapping / @ [http-method]映射装饰我的服务,就像装饰/ web / rest / resources / *以暴露新的rest api方法一样...也许使用“ / api / srv /“区分服务级api资源?它似乎工作......当我这样做时,装饰的服务方法出现在招摇,等等。我想我只是在寻找一个健全性检查,我没有违反框架惯例或误解/服务类的预期用途。

spring rest jhipster
1个回答
2
投票

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

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

  • 控制器层处理http请求/响应(请求参数/主体,响应代码/主体等...)并分派到不同的Service层方法。
  • 服务层负责实际业务逻辑,并调用DAO层来检索业务逻辑计算所需的数据。
  • Dao层最终具有查询/ hibernate / jpa细节的责任访问数据库。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.