簡體   English   中英

Spring Boot REST架構

[英]Spring Boot REST architecture

最近,我一直在使用Angular 5前端開發Spring Boot應用程序,但我對其架構有些困惑。 我被教導要在春季編寫存儲庫,服務和控制器,並遵循MVC模式。 我開始為該應用程序編寫文檔,並嘗試描述這種架構。 因此,正如我認為View是Angular應用程序一樣,C由控制器類組成,並且我將第三層描述為由實體和服務類組成的buisnis邏輯。 但是模型到底是什么? 我設法遵循MVC模式了嗎? 另外,我有一個controlleradvice,異常類和安全性類,它們使用jwts進行身份驗證和授權,但是我想這些類完全不適合MVC。

我已經搜索了解釋,但似乎沒有找到它。 有人可以向我解釋一下嗎? 謝謝!

更新

所以基本上我不了解的是彈簧級+角度如何滿足MVC模式的要求

例如,這是搜索彈簧層時互聯網上的第一批圖表之一,但正如我所見,它們與MVC不同

在此處輸入圖片說明

Angular是SPA,一種單頁應用程序。 它包含所有內容,模型(更改業務數據),視圖(帶有HTML的模板)和控制器(您的組件中的單擊和其他事件處理程序)。

Spring后端是Model的擴展,用於執行進一步的數據轉換並將其存儲在數據庫中。

Model-View-Something(還有MVVM及其派生)是一種來自桌面應用程序的模式,但它並不真正適用於SPA。 而且,即使在桌面應用程序中,MVC中的Controller也經常被視為多余的(因為它只是委派東西,而不像View和Model那樣重要)。

重要的是要知道何時使用Angular是組件模式。 它在Angular,React,Vue甚至在VaStim之類的SSR框架中均有效。 組件既是HTML的一部分,也是操縱該HTML的腳本代碼的一部分。 組件可以相互嵌套,從而允許分層體系結構。

我正在同一個項目中使用前端作為前端,而將Spring Boot作為后端在同一項目上,就像您一樣,我對它的體系結構仍然有些困惑,但是由於我實際上是在使用控制器,所以我最終不得不采用MVC模型,定義模型和渲染視圖(json結果)。

顯然,您的前端使用的是CBA(基於組件的體系結構,后端使用的是MVC模式,因為spring MVC嵌入在spring boot中,因此它實際上使用相同的邏輯。這是spring boot如何在控制器之間分配和處理請求的簡要示意圖,您可以將調度程序servlet視為前端和后端之間的中間件(但請記住,它已嵌入在spring boot容器中) 在此處輸入圖片說明

如評論中所述,使用Spring Boot的后端和使用Angular的前端都可以視為不同的應用程序,每個應用程序都遵循Model-View-Controller設計模式。

您還發布了三層體系結構的屏幕截圖。 這種架構僅告訴您如何構造代碼。 通常,應用程序的MVC部分在表示層內 (在屏幕快照中,它稱為Web層)。

因此,如果您查看后端應用程序,則可以確定以下部分:

  • 數據層 /存儲庫層:存儲庫
  • 業務層 /服務層:服務
  • 表示層 / Web層:模型-視圖-控制器+調度程序
    • 模型 :無論您在服務中暴露的內容(可能是DTO)
    • 視圖 :JSON結構/映射
    • 控制器 :彈簧控制器

對於您的前端,您也可以識別它們:

  • 數據層 :HTTP調用
  • 業務層 :角服務
  • 表示層 :組件+路由器
    • 模型 :無論您在服務中公開的內容如何(可能與您在后端公開的結構類似)
    • 視圖 :模板
    • 控制器 :組件

總覽

不過,這有點過分簡化了,可能不是每個人都會同意的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM