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