【问题标题】:In a Spring Web MVC application - how do we break up the architecture into Front-end & Back-end?在 Spring Web MVC 应用程序中 - 我们如何将架构分解为前端和后端?
【发布时间】:2015-09-06 19:42:39
【问题描述】:

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

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

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

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

数据库:

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

我始终相信服务器端(Web 控制器/服务/存储库)+ 数据库中的所有内容都构成了后端。但是我的一位同事认为只有数据库才是“后端”。

我的另一位同事说只有“服务和存储库”层构成后端,他认为 Web 层内的东西(由 JSP/Thymeleaf 模板、表单支持对象、控制器组成)被认为是“前端”

【问题讨论】:

    标签: java spring spring-mvc frontend backend


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

    【讨论】:

    • 我认为将 webapp 文件夹下的所有内容都视为前端绝对是个好主意。 JSP 用于生成视图,但顾名思义,它们几乎是一种后端技术,因为服务器端是后端。此外,JSP 位于 webapp 文件夹下。您对此有何看法?
    • 我倾向于将任何 MVC 框架的 V 部分视为前端和包含 html、css、js 和 jsp 的 SpringMVC 应用程序。我完全清楚这是值得商榷的。另外,我自己也是后端开发人员,前端开发人员可能有不同的看法。请注意,一个应用程序可以有很多层,每个层都有自己的前端和后端。有人可能会争辩说,移动应用程序在手机上都有前端和后端,并且还与服务器通信。
    • 在维基百科的this page“前端和后端可能分布在一个或多个系统中”
    【解决方案2】:

    简单来说 我想说,无论您使用何种技术,无论您想向用户显示什么,都将进入 View(如 HTML 表单或任何信息丰富的 HTML 页面)。 关于后端,我会说您希望在前端显示一些数据(在 SpringMVC 中查看),因此您将进行任何预处理,包括通过 Web 服务从其他系统获取数据等,它将进入后端部分。在相同的情况下,如果您正在从数据库获取数据,您也可以说它的后端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      相关资源
      最近更新 更多