我从文档中了解entity和service创建之间的区别。我很想用@ RestController / @ RequestMapping / @ [http-method]映射来装饰我的服务,就像装饰/ web / rest / resources / *以暴露新的rest api方法一样......也许使用" / api / srv /"区分服务级api资源?它似乎有效...当我这样做时,装饰的服务方法显得昂首阔步等等。我想我只是在寻找一个健全性检查,我没有违反框架惯例或误解了预期用途/服务类。
答案 0 :(得分:2)
这实际上归结为责任分离。您可以将任何类公开为@RestController
,无论它是真实的Controller
还是服务,甚至是Dao
。
但是,大多数时候,我们希望每一层都做自己的事情。
Service
层方法。 DAO
层来检索业务逻辑计算所需的数据。 正如您所看到的,每个层都在尝试自己做事并将依赖关系与其他层隔离开来。像控制器层一样处理http相关的东西,以便其他层不必携带Servlet
依赖项。 DAO也是如此,因此其他层不需要知道有关数据持久性的任何细节。
对于swagger
,它只是分析您的代码和注释,并在控制器层中公开任何内容。 :)
总而言之,恕我直言,仍然建议使用@RestController
注释您的真实Controller类,并让您的Service
处理真正的业务。