SpringBoot框架中的DAO層、Entity層、Service層、Controller層

非原創(chuàng),看了許多篇博客的總結(jié)
一般的項(xiàng)目模塊中都有DAO、Entity、Service、Controller層。

Entity層:實(shí)體層 數(shù)據(jù)庫在項(xiàng)目中的類

Entity層是實(shí)體層,也就是所謂的model,也稱為pojo層,是數(shù)據(jù)庫在項(xiàng)目中的類,該文件包含實(shí)體類的屬性和對應(yīng)屬性的set、get方法;

DAO層: 持久層 主要與數(shù)據(jù)庫進(jìn)行交互

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

Service層:業(yè)務(wù)層 控制業(yè)務(wù)

Service層主要負(fù)責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計(jì)。先設(shè)計(jì)放接口的類,再創(chuàng)建實(shí)現(xiàn)的類,然后在配置文件中進(jìn)行配置其實(shí)現(xiàn)的關(guān)聯(lián)。service層調(diào)用dao層接口,接收dao層返回的數(shù)據(jù),完成項(xiàng)目的基本功能設(shè)計(jì)。

封裝Service層的業(yè)務(wù)邏輯有利于業(yè)務(wù)邏輯的獨(dú)立性和重復(fù)利用性。

Controller層:控制層 控制業(yè)務(wù)邏輯

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

總結(jié):

業(yè)務(wù)邏輯:

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

在具體的項(xiàng)目中,其流程為:Controller層調(diào)用Service層的方法,Service層調(diào)用Dao層中的方法,其中調(diào)用的參數(shù)是使用Entity層進(jìn)行傳遞的??偟膩碚f這樣每層做什么的分類只是為了使業(yè)務(wù)邏輯更加清晰,寫代碼更加方便,所以有時(shí)候也需要根據(jù)具體情況來,但是大體的都是這樣處理的,因?yàn)樗鋵?shí)就是提供一種規(guī)則,讓你把相同類型的代碼放在一起,這樣就形成了層次,從而達(dá)到分層解耦、復(fù)用、便于測試和維護(hù)的目的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容