在 Spring Web MVC 应用程序中 - 我们如何将架构分解为前端和后端?

In a Spring Web MVC application - how do we break up the architecture into Front-end & Back-end?

查看示例 Spring Web MVC 应用程序 PetClinic https://github.com/spring-projects/spring-petclinic 作为示例。

应用程序通常分为 3 个不同的物理层,在服务器端它分为不同的层:

客户端:(JavaScript/CSS 等...)

服务器端: - 网络 - 服务 - 存储库

数据库:

以上面的应用为例,什么是前端和后端?

我始终相信服务器端(web controllers/service/repositories)+ 数据库构成后端的一切。但是我的一位同事争辩说 'back-end' 只有数据库才是。

我的另一位同事说只有 'Service & Repository' 层构成后端,他认为 Web 层内部的东西(由 JSP/Thymeleaf 模板、表单支持对象、控制器组成)被认为是 'front-end'

  • 在 SpringMVC 应用程序中,前端是 viewspetclinic 应用程序中的 jsp 个文件用于生成从服务器提供给客户端的 html 个文件。这些文件允许用户查看模型的数据。
  • 在 Web 应用程序中,后端当然不仅仅是数据库。控制器也是后端的一部分。在 SpringMVC 应用程序中,这些 类 注释为 @Controller
  • 关于 petclinic 应用程序的文件,您可以将 src/main/webapp 中的所有内容视为前端,将其他所有内容视为后端。其他人可能不同意。
  • 请注意,使用 SpringMVC 构建的服务器应用程序也可用于公开 REST api 接收和传输 JSON 文档到移动应用程序。此应用可能会使用自己的前端和后端实现 MVC 模式本身。

简单来说 我会说无论技术如何,您想要向用户显示的任何内容都会进入视图(如 HTML 表单或任何信息性 HTML 页面)。 关于后端,我会说您希望在前端显示一些数据(在 SpringMVC 中查看),因此您将进行任何预处理,包括通过 Web 服务从另一个系统获取数据,所有这些都会在后端 part.In 相同如果你从数据库中获取数据,你也可以说它的后端。