当前位置: 首页 > 知识库问答 >
问题:

在Spring应用程序中拥有RestController和Controller的最佳实践

杨超
2023-03-14

我不是问这是否可能,我知道这是可能的,但我想知道什么是最好的方式提供一个rest服务,同时在我的应用程序中有一个前端。

我正在开发一个Spring Boot应用程序,我目前有一个调用jsp页面的控制器,还有一个单独的RestController。我希望能够用一个Android应用来消费它。

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

编辑:我知道两者之间的区别,但由于我想返回一个视图(我不应该用RestController这样做),并且我想拥有一个rest服务,所以我想知道是否可以同时拥有这两个视图(当然是分开的)。

提前谢谢你。

共有1个答案

姚建树
2023-03-14

我认为这是可能的,但在一个典型的、分层的spring应用程序中被认为是一种糟糕的做法(除了像REST应用程序中的Swagger控制器这样的角落情况)(将回到这个问题)
您可能想要创建一个多模块项目,它可能如下所示:

  • 父项目
    --Core
    --web api(基于jsp)
    --rest api(用于android)

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

您可能还想阅读关于端口和适配器体系结构的内容,这可能会给您提供一个想法,如何以一种更有条理的方式解决这一问题,而不仅仅是让控制器和RestControllers并排坐在一起

 类似资料:
  • 由于有多个实现提供了OAuth2功能,我们目前正在研究几个可用的选项。(例如Keycloak和ORY Hydra)。我们的选择取决于我们要做多少工作,改变应用程序的现有结构,如何处理数据库中的用户。但无论我们选择哪种实现方式,我们都将面临类似的问题。 问题 > react应用程序如何处理登录过程和令牌存储? 这同样适用于刷新令牌流。因为对于我自己的应用程序,我必须设置cookie,对于第三方,这必

  • 问题内容: 我们有一个大型Angularjs 1.6应用程序,该应用程序的$ rootscope分散在整个应用程序的过滤器,服务,路由等200多个位置中。因此需要对其进行重构,但是我不确定如何知道何时将其删除。什么时候在应用程序中使用$ rootscope是最佳实践? 我已经阅读了所有内容,从没读过,到用它来存储变量,我都以为是在控制器之间共享数据。从那以后,我读到最好在这种用例中使用工厂/服务,

  • 问题内容: 我来自一个有角的世界,在那里我可以将逻辑提取到服务/工厂,并在控制器中使用它们。 我试图了解如何在React应用程序中实现相同的目标。 假设我有一个可以验证用户密码输入(强度)的组件。它的逻辑非常复杂,因此我不想将其编写在自己的组件中。 我应该在哪里写这个逻辑?在商店中,如果我使用助焊剂?还是有更好的选择? 问题答案: 第一个答案并不反映当前的Container vs Presente

  • spring和注释之间的差异。 注释可以同时用于Web MVC和REST应用程序吗? 如果可以,我们如何区分它是Web MVC还是REST应用程序。

  • 我正在构建一个全栈 Web 应用程序。我正在使用 Vue.js作为前端,Spring启动用于后端,将 PostgreSQL docker 容器用于数据库。但是,我很好奇,一旦我完成了Web应用程序的开发,我应该在哪里以及如何部署它。 我在下面列出了我的问题: < li >我应该在哪里部署我的全栈应用程序,如AWS、GCP、Hiroku或任何其他平台。 < li >部署我的前端、后端和数据库的最佳实

  • 所以我有一个Web应用程序,其中前端是用React编写的,后端是用NodeJs/NestJ编写的,并且处于部署应用程序的阶段。我有一个运行Ubuntu的Linode服务器,我最初的想法是安装Docker 那么,这是设置应用程序的好方法吗?这种设置有什么利弊吗?除了因为需要服务器数量而定价之外?或者还有其他更有益的选择吗? 提前致谢。