Spring MVC 可以只用于设计客户端(前端)吗?

问题描述 投票:0回答:1

我有一些 Spring Boot 微服务,我想从客户端应用程序(前端)使用这些微服务。如果我使用 Spring MVC 设计客户端应用程序,然后客户端应用程序向微服务 REST API 发送请求以使用其服务,这是一个标准且正确的解决方案吗? 我的意思是,使用 Spring MVC 而不是 Angular 或 React 等框架来设计客户端应用程序。但应用程序的主要逻辑驻留在 Spring Boot 微服务中。

这张图片更好地显示了问题:

spring-boot spring-mvc microservices
1个回答
0
投票

tl;dr:Spring MVC 不会与您想要做的事情相矛盾,但作为一项技术,这并不是它构建的主要场景。

首先是一个简短的术语澄清(有点迂腐,但精确有助于理解):

  • 我认为,当您说“微服务”时,您的意思是“一个 RESTful 服务,作为后端的一部分(与“微服务”相反,“微服务”通常指的是在后端相互作用的多个 REST 服务的结构模式)。
您可以/应该使用 Spring MVC 来实现您想要的场景吗?

    Spring MVC 的优点是在静态、服务器端创建的 HTML 页面 (
  • V) 和后端 (C+M) 之间方便地交换变量。例如。 HTML 表单,Spring MVC 使您可以直接从 java 代码方便地访问表单字段。您描述的通信(您的前端与 REST API 交互)不是 Spring MVC 主要目的的一部分。然而,Spring MVC 本身并没有排除这种选择。 Spring MVC 生成的页面可能仍包含向 REST API 发出请求的代码。
这通常是如何完成的:

    Web 前端与 REST 后端的通信通常是这样工作的:一些在客户端/前端运行的 JavaScript 代码发出
  • fetch
     调用以将 HTTP 请求发送到 RESTful 服务(后端的一部分)。 Javascript 代码(或者更确切地说,包含 JavaScript 代码的页面)可以从任何地方交付。它可以是 Spring MVC 应用程序的一部分,但您不一定需要 Spring MVC。
© www.soinside.com 2019 - 2024. All rights reserved.