springboot項目分層


springboot項目分層

一般的項目模塊中都有DAO、Entity、Service、Controller層。

Entity層:實體層 數據庫在項目中的類

Entity層是實體層,也就是所謂的model,也稱為pojo層,是數據庫在項目中的類,該文件包含實體類的屬性和對應屬性的set、get方法;

DAO層: 持久層 主要與數據庫進行交互(按照個人習慣我的話會把這層分成兩部分,一部分是dao層,主要將與數據庫對比獲得的數據封裝成前端需要的樣子,一部分是repository層,主要與數據庫交互)

DAO層=mapper層,現在用Mybatis逆向工程生成的mapper層,其實就是dao層。DAO層會調用entity層,DAO中會定義實際使用到的方法,比如增刪改查。DAO 層的數據源和數據庫連接的參數都是在配置文件中進行配置的,配置文件一般在同層的XML文件夾中。數據持久化操作就是指,把數據放到持久化的介質中,同時提供增刪改查操作。

Service層:業務層 控制業務

Service層主要負責業務模塊的邏輯應用設計。先設計放接口的類,再創建實現的類,然后在配置文件中進行配置其實現的關聯。service層調用dao層接口,接收dao層返回的數據,完成項目的基本功能設計。

封裝Service層的業務邏輯有利於業務邏輯的獨立性和重復利用性。

Controller層:控制層 控制業務邏輯

Controller層負責具體的業務模塊流程的控制,controller層負責前后端交互,接受前端請求,調用service層,接收service層返回的數據,最后返回具體的頁面和數據到客戶端。
Controller層像是一個服務員,他把客人(前端)點的菜(數據、請求的類型等)進行匯總什么口味、咸淡、量的多少,交給廚師長(Service層),廚師長則告訴沾板廚師(Dao 1)、湯料房(Dao 2)、配菜廚師(Dao 3)等(統稱Dao層)我需要什么樣的半成品,副廚們(Dao層)就負責完成廚師長(Service)交代的任務。

總結:

業務邏輯:

    Controller-->service接口-->serviceImpl-->dao接口-->daoImpl-->reposotory接口-->repositoryImpl-->mapper-->db

在具體的項目中,其流程為:Controller層調用Service層的方法,Service層調用Dao層中的方法,其中調用的參數是使用Entity層進行傳遞的。總的來說這樣每層做什么的分類只是為了使業務邏輯更加清晰,寫代碼更加方便,所以有時候也需要根據具體情況來,但是大體的都是這樣處理的,因為它其實就是提供一種規則,讓你把相同類型的代碼放在一起,這樣就形成了層次,從而達到分層解耦、復用、便於測試和維護的目的。

參考

https://www.jianshu.com/p/18c4418e9b99

【創作不易,望點贊,若有疑問,請評論,謝謝】


免責聲明!

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



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