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

时间:2018-01-04 18:45:04

标签: spring rest jhipster

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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