springboot三層架構與MVC


三層架構與MVC

1. 三層架構是什么

把各個功能模塊划分為表示層,業務邏輯層,和數據訪問層三層架構,各層之間采用接口相互訪問,並通過對象模型的實體類(model)作為數據傳遞的載體,不同的對象模型實體類一般對應數據庫的不同表。


上層對下層的調用是通過接口實現的;下層對上層的真正服務提供者,是下層接口的實現類。

接口是相同的額,實現類是可以更換的。

2. 三層架構的目的

“高內聚,低耦合”

3.分層方式

  • 表示層(視圖層View)

​ 在表示層調用業務層的方法,前台設計,相關控件,數據緩存都屬於表示層。

​ 就是實現用戶界面,將用戶的需求傳達和反饋。

  • 業務層(服務層Service)

​ 數據訪問的邏輯放在業務層。對具體問題進行邏輯判斷與執行操作;

​ 接收到表現層 的用戶指令后,會連接數據訪問層,作為表示層和數據層的橋梁,實現三層之間的數據連接和指令傳達,對 接收數據 進行邏輯處理,實現數據的修改,獲取,刪除等功能,並將處理結果反饋到表示層,實現軟件功能。

  • 數據層(持久層Dao)

    ​ 包含所建的數據庫和一些存儲過程(實現數據訪問,分頁,搜索算法等),被業務層調用

    ​ 是數據庫的主要操作系統,實現 數據庫 的增刪改查等操作,並將操作結果反饋到業務邏輯層

    ​ 在實際運行的過程中,數據訪問層沒有邏輯判斷能力,為了實現代碼編寫的嚴謹性,提高代碼閱讀程度,一般軟件開發人員會在該層中編寫 Data AccessCommon,保證數據訪問層 數據處理功能。

  • 實體類庫

    ​ 實體類庫是數據庫表的映射對象,在開發過程中,要建立對象實例,將關系數據庫表采用對象實體化的方式表現出來,利用 GET 與 SET 把數據庫表中的所有字段映射為系統對象,建立實體類庫,進而實現各個結構層的參數傳輸,服務於其他三層。

舉例:

假設數據庫里有一個表 BOOKS(書),建立一個存儲過程 GetAllBooks,用來讀取書的信息,這樣在業務層里編一個方法 GetBookS()和一個公用數據庫訪問類,GetBooks()就通過數據庫訪問類打開連接,執行在存儲過程,返回數據 (返回類型可以是 DataT - able,DataSet,DataReader 或 者 實 體 類)。業務層單獨編譯成一個或者幾個 DLL 文件。表示層通過調用GetBookS()返回數據綁定在相關的控件里。

4. 數據庫與應用服務器的連接

應用服務器利用SQL語言進行連接數據庫服務器。

5.什么是MVC

  • View

視圖,為用戶提供界面,與用戶直接進行交互,處理數據可視化的部分。

  • Model

模型,用於處理應用程序數據邏輯的部分,實現增刪改查功能,通常負責在數據庫中存取數據,代表一個存取數據的對象或JAVA POJO

  • Controller

控制器,處理用戶交互的部分。通常負責從視圖讀取數據,控制用戶輸入,並向model發送數據,在數據變化時更新視圖。

1)接受請求,並將該請求跳轉(轉發,重定向)到模型進行處理

2)模型處理完畢后,再通過控制器,返回給視圖中的請求。

當單機web頁面中超鏈接和發送表單時,控制器本身不輸出任何東西和做任何處理,僅對請求進行解析。他只是接受請求並決定調用哪個模型構建去處理請求,在確定用哪個視圖來顯示返回的數據。

6. MVC與三層架構的關系

7.一個簡單的業務流程

  1. web視圖發送一個請求 去往一個接口,比如/login
  2. 找到對應的 Controller,在spring 中具體路徑體現為RequestMapping("/login")
  3. 訪問這個路徑,執行該``RequestMapping`中的邏輯
  4. Controller 找到對應的Service
  5. Service找到對應的Dao
  6. Dao聯合Model(Bean)操作數據庫
  7. 返回結果給Controller
  8. Controller對結果進行處理

項目結構解析,另一三層架構筆記

https://www.cnblogs.com/Acezhang/p/14466283.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM