目錄
1.DAO層
Dao層的設(shè)計(jì)
2.Service層
Service層的設(shè)計(jì)
設(shè)計(jì)Service層的優(yōu)點(diǎn)
?Dao與Service的關(guān)系
3.Colltroler層
Collertroler層的設(shè)計(jì)
4.項(xiàng)目中的具體流程
1.DAO層
????????全稱數(shù)據(jù)訪問層,全稱data access object,屬于一種比較底層,比較基礎(chǔ)的操作。具體到對于某個(gè)表、某個(gè)實(shí)體類的增刪改查,即用于數(shù)據(jù)庫的增刪改查,表達(dá)的是對SQL語句的封裝,建議對DAO只做原子操作。有多少張表就有多少個(gè)DAO層。在mybatis中,方法主要與xxx.xml內(nèi)一一對應(yīng),相互映射。
Dao層的設(shè)計(jì)
????????dao層負(fù)責(zé)與數(shù)據(jù)庫聯(lián)絡(luò)的一些任務(wù)封裝在此,dao層首先設(shè)計(jì)dao層接口,然后在配置文件中定義此類接口的實(shí)體類,然后就可以在模塊中調(diào)用此接口來進(jìn)行數(shù)據(jù)處理。不需要關(guān)心此接口的具體實(shí)現(xiàn)類,結(jié)構(gòu)清晰。dao層的數(shù)據(jù)源配置以及數(shù)據(jù)庫連接參數(shù)都在配置文件中進(jìn)行配置。
2.Service層
????????全稱業(yè)務(wù)邏輯層,在該層進(jìn)行復(fù)雜的業(yè)務(wù)邏輯處理,且只專注邏輯處理,即對于多個(gè)dao層進(jìn)行封裝、處理。其中需要的數(shù)據(jù)庫操作通過DAO層去實(shí)現(xiàn)。所以我們再Service層需要事務(wù)管理。
????????業(yè)務(wù)邏輯,就是對數(shù)據(jù)庫獲取的數(shù)據(jù)進(jìn)行處理,比如從數(shù)據(jù)庫獲取num=10,邏輯操作是+1,那么+1操作由Service處理。
Service層的設(shè)計(jì)
????????Service層,負(fù)責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計(jì)。同樣是先設(shè)置接口,再設(shè)計(jì)實(shí)現(xiàn)類,接著在配置文件中配置其關(guān)聯(lián)。這樣我們就能在應(yīng)用中調(diào)用Service接口來進(jìn)行業(yè)務(wù)處理。Service層的業(yè)務(wù)類具體要調(diào)用已經(jīng)定義的dao層接口。
service層=service接口(可以根據(jù)業(yè)務(wù)復(fù)雜程度來省略)+service實(shí)現(xiàn)類
設(shè)計(jì)Service層的優(yōu)點(diǎn)
????????我們通過將dao層封裝成Service層,讓Service層去調(diào)用dao層的接口,有利于業(yè)務(wù)邏輯的獨(dú)立性和重復(fù)利用。程序顯得非常簡介。
?Dao與Service的關(guān)系
DAO面向表,Service面向業(yè)務(wù)。后端開發(fā)先數(shù)據(jù)庫設(shè)計(jì)出所有的表,然后每一張表設(shè)計(jì)出DAO層,然后根據(jù)其具體的業(yè)務(wù)邏輯將DAO層封裝成一個(gè)Service層,對外提供一個(gè)服務(wù)。
3.Colltroler層
????????Collertroler層俗稱控制層,負(fù)責(zé)請求轉(zhuǎn)發(fā),接收頁面(前端H5或者App)傳過來的參數(shù),并調(diào)用Service層中定義的方法進(jìn)行業(yè)務(wù)操作,再將處理結(jié)果返回前端。
Collertroler層的設(shè)計(jì)
????????Colltroler負(fù)責(zé)具體業(yè)務(wù)模塊流程的控制,在此層需要調(diào)用Service層提供的接口來控制業(yè)務(wù)流程,控制的配置同樣在配置文件中,針對具體的業(yè)務(wù)流程,有不同的控制器。我們的設(shè)計(jì)過程可以將流程進(jìn)行抽象歸納,設(shè)計(jì)出可以重復(fù)利用的單元流程模塊,這樣可以使程序結(jié)構(gòu)更清晰,大大減少代碼量。
4.項(xiàng)目中的具體流程
????????Controller層調(diào)用Service層的方法,Service層調(diào)用Dao(mapper)層中的方法,其中調(diào)用的參數(shù)是使用Entity層進(jìn)行傳遞的。總的來說這樣每層做什么的分類只是為了使業(yè)務(wù)邏輯更加清晰,寫代碼更加方便,所以有時(shí)候也需要根據(jù)具體情況來,但是大體的都是這樣處理的,因?yàn)樗鋵?shí)就是提供一種規(guī)則,讓你把相同類型的代碼放在一起,這樣就形成了層次,從而達(dá)到分層解耦、復(fù)用、便于測試和維護(hù)的目的。
? ? ? ?entity實(shí)體層(model),存放的實(shí)體類,與數(shù)據(jù)庫中的屬性保持一致,實(shí)現(xiàn)set和get方法。用于各層(DAO,Service、Colltroler)之間對象數(shù)據(jù)的封裝和傳遞文章來源:http://www.zghlxwxcb.cn/news/detail-476627.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-476627.html
到了這里,關(guān)于Springboot三層架構(gòu)--DAO層、Service層、Colltroler層--這波我在外太空的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!