在我的情况下,springBoot 是不是实现了 MVC 模式?

Posted

技术标签:

【中文标题】在我的情况下,springBoot 是不是实现了 MVC 模式?【英文标题】:Is springBoot in my case implementing the MVC pattern?在我的情况下,springBoot 是否实现了 MVC 模式? 【发布时间】:2018-10-04 18:00:10 【问题描述】:

我正在创建一个应用程序,它的前端使用 Angular 开发,后端使用 SpringBoot 开发。

问题是后端有带有请求映射和模型(服务和存储库)的控制器,没有视图,那么它真的实现了 MVC 模式吗?

我在这篇文章“Spring MVC or Spring Boot”中读到,它自己实现 MVC 模式的 Spring MVC 是 Spring Boot 的一部分,所以 Spring Boot 基本上是 MVC,当您的项目中有视图和 html 页面时,这是正确的,但在我的情况下,我不能谈论视图,因为我正在从一个 RESTful API 发送和接收 JSON 数据。

【问题讨论】:

【参考方案1】:

根据https://www.wikiwand.com/en/Model%E2%80%93view%E2%80%93controller

view means presentation of the model in a particular format.

我认为这是一个很好的定义。 Particular format 如果 REST API 的后端恰好是 JSON 或 XML。

来自同一页面

一些 Web MVC 框架采用瘦客户端方法,几乎​​可以将 服务器上的整个模型、视图和控制器逻辑。在这个 方法,客户端发送超链接请求或表单 提交给控制器,然后收到完整和更新的 视图中的网页(或其他文档); 模型完全存在 在服务器上。

【讨论】:

所以在我的情况下,我的视图是例如当我输入 localhost:XXXX/myroute/myparam 时显示的 JSON? 我会说是的。这是 MVC 中模型的定义问题。在 MVC 的定义中,我遇到从后端返回的文档算作模型。它不必是 HTLM 网页。 所以我的前端正在根据提供的路由url从视图中获取数据,非常感谢,标记为答案【参考方案2】:

在您的情况下,视图将是前端。视图是以人类可以理解的方式呈现数据。

所以我相信你的 View 将是前端应用程序。

【讨论】:

如何在两端共享 MVC 模式?我认为项目的每一端都有自己的逻辑架构,例如前端的 MVVM 和后端的 MVC,如果错了,请纠正我 它是一种设计模式。但我想你可以说视图也是 JSON。但我认为,对 View 最正确的理解是你项目的整个演示部分。 HTML、json、javascript 等。一般的用户界面。 如果我有两个控制器,一个在前端,另一个在后端,它仍然有效吗?您不能为项目的两侧应用通用的 MVC 模式,每一侧都有自己的架构自己的参数和自己的功能,以我在第一张图片中的示例为例,我使用的是采用 CBA(基于组件的架构或MV*) 用于前端和更可能采用 MVC 的 SpringBoot。 是的,它们都应用了 MVC。 MVC 只是一种项目模式。 Angular 有控制器、模型和视图(HTML)。后端有控制器、模型(实体)和视图,在 MVC 的情况下,它们代表应用程序与用户交互的部分,并以人类可理解的方式呈现数据。这将是前端。 也许你可以说它们都使用了MVC模式,但是你不能在每一端分配相同的模式,你基本上不能说你的模型和控制器在后端并且视图是你的前端,正确的说法是声明它们都有模型、控制器和视图,后端视图使用 JSON 数据与前端通信。

以上是关于在我的情况下,springBoot 是不是实现了 MVC 模式?的主要内容,如果未能解决你的问题,请参考以下文章

在我的情况下,With(NoLock) 提示是不是危险?

AUTO_INCREMENT 在我的情况下是不是正确实施?

允许用户在我的类中定义数组大小而不是使用固定变量的最佳方法是啥,在这种情况下为 8

SpringBoot + Thymeleaf + Security Dialect 怎么配置?

Maven构建的Springboot项目转为gradle

Maven构建的Springboot项目转为gradle