在Spring Application中使用RestController和Controller的最佳实践

时间:2018-05-22 14:25:40

标签: java spring rest

我不是在问它是否可能,我知道它是,但我想知道在我的应用程序中有一个前端时提供休息服务的最佳方法是什么

我正在开发一个Spring Boot应用程序,我目前有一个调用jsp页面的控制器,以及一个单独的 RestController。我希望能够通过Android应用程序使用它。

在我的应用程序中同时拥有一个Controller和一个单独的 Restcontroller是否正确?例如,将从/ api / *调用Rest控制器方法。

编辑: 我知道两者之间的区别,但是因为我希望能够返回一个视图(我不应该使用RestController这样做)并且我想要一个休息服务我想知道我是否可以同时拥有两个他们(当然是分开的)。

提前非常感谢你。

1 个答案:

答案 0 :(得分:4)

我会说这是可能的,但在一个典型的,分层的弹簧应用程序(将会回到那个)中被认为是一种不好的做法(除了在REST应用程序中像Swagger的控制器这样的角落案例) 您可能想要创建一个多模块项目,可能看起来像这样:

  • 父项目
    - 核心
    - web api(基于jsp)
    - rest api(for android)

web api和rest api都取决于核心 web api和rest api是单独的部署单元。您可以将它们部署在同一台服务器上,也可以作为单独的应用程序运行(例如使用spring boot)。取决于你的用例 因此,您可以将业务逻辑放在一个地方(核心)。

您可能还想阅读有关ports and adapters架构的内容,这可能会让您了解如何以更有条理的方式解决此问题,而不仅仅是将控制器和RestControl并排放置