最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springBoot controller,service,dao,mapper,model層的作用說明

 更新時間:2021年11月16日 10:19:43   投稿:jingxian  
這篇文章主要介紹了springBoot controller,service,dao,mapper,model層的作用說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

零、業(yè)務(wù)邏輯

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

一、Dao(Data Access Object):數(shù)據(jù)存儲對象

DAO = Data Access Object = 數(shù)據(jù)存取對象. 不管是什么框架,我們很多時候都會與數(shù)據(jù)庫進(jìn)行交互。如果遇到一個場景我們都要去寫SQL語句,那么我們的代碼就會很冗余。所以,我們就想到了把數(shù)據(jù)庫封裝一下,讓我們的數(shù)據(jù)庫的交道看起來像和一個對象打交道,這個對象通常就是DAO。當(dāng)我們操作這個對象的時候,這個對象會自動產(chǎn)生SQL語句來和數(shù)據(jù)庫進(jìn)行交互,我們就只需要使用DAO就行了。

通常我們在DAO層里面寫接口,里面有與數(shù)據(jù)打交道的方法。SQL語句通常寫在mapper文件里面的。

優(yōu)點(diǎn):結(jié)構(gòu)清晰,Dao層的數(shù)據(jù)源配置以及相關(guān)的有關(guān)數(shù)據(jù)庫連接的參數(shù)都在Spring配置文件中進(jìn)行配置。

二、Service:服務(wù)

服務(wù)是一個相對獨(dú)立的功能模塊,主要負(fù)責(zé)業(yè)務(wù)邏輯應(yīng)用設(shè)計(jì)。首先也要設(shè)計(jì)接口,然后再設(shè)計(jì)其實(shí)現(xiàn)該接口的類。這樣我們就可以在應(yīng)用中調(diào)用service接口進(jìn)行業(yè)務(wù)處理。service層業(yè)務(wù)實(shí)現(xiàn),具體調(diào)用到已經(jīng)定義的DAO的接口,封裝service層的業(yè)務(wù)邏輯有利于通用的業(yè)務(wù)邏輯的獨(dú)立性和重復(fù)利用性 。

如果把Dao層當(dāng)作積木,則Service層則是對積木的搭建。

三、Controller:控制器

主要負(fù)責(zé)具體業(yè)務(wù)模塊流程的控制,此層要調(diào)用到Service層的接口去控制業(yè)務(wù)流程,控制的配置同樣在Spring配置文件中配置。針對不同的業(yè)務(wù)流程有不同的控制器。在設(shè)計(jì)的過程可以設(shè)計(jì)出重復(fù)利用的子單元流程模塊。

四、model:模型

模型就是指視圖的數(shù)據(jù)Model,模型,通常來講,我們會把模型和另一個東西放在一起來說:View,視圖。

模型通常認(rèn)為是視圖的內(nèi)核,何謂之視圖?我們正在與之交互的網(wǎng)站的界面就是視圖,而模型是指他的內(nèi)核數(shù)據(jù)

將Model和View的概念拆分開來,有助于我們關(guān)注不同的方面,也可以更有效的分工。有些工程師更關(guān)注于內(nèi)核也就是模型,通常來說,他們被稱之為后端工程師。有些工程師更關(guān)注于用戶界面的交互和展示,通常來說,他們被稱之為前端工程師。

五、View層

與Controller層關(guān)系緊密,View層主要負(fù)責(zé)前臺jsp頁面的表示。

六、它們之間的關(guān)系

建立了DAO層后才可以建立Service層,而Service層又是在Controller層之下的,因而Service層應(yīng)該既調(diào)用DAO層的接口,又要提供接口給Controller層的類來進(jìn)行調(diào)用,它剛好處于一個中間層的位置。每個模型都有一個Service接口,每個接口分別封裝各自的業(yè)務(wù)處理方法。

DAO層、Service層和Controller層的區(qū)別

1、dao層:數(shù)據(jù)訪問層

dao層屬于一種比較底層,比較基礎(chǔ)的操作,具體到對于某個表的增刪改查,也就是說某個DAO一定是和數(shù)據(jù)庫的某一張表一 一對應(yīng)的,其中封裝了增刪改查基本操作,建議DAO只做原子操作,增刪改查。

負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行聯(lián)絡(luò)的一些任務(wù)都封裝在此,dao層的設(shè)計(jì)首先是設(shè)計(jì)dao層的接口,然后在Spring的配置文件中定義此接口的實(shí)現(xiàn)類,然后就可以再模塊中調(diào)用此接口來進(jìn)行數(shù)據(jù)業(yè)務(wù)的處理,而不用關(guān)心此接口的具體實(shí)現(xiàn)類是哪個類,顯得結(jié)構(gòu)非常清晰,dao層的數(shù)據(jù)源配置,以及有關(guān)數(shù)據(jù)庫連接參數(shù)都在Spring配置文件中進(jìn)行配置。

2、service層:服務(wù)層

粗略的理解就是對一個或多個DAO進(jìn)行的再次封裝,封裝成一個服務(wù),所以這里也就不會是一個原子操作了,需要事物控制。

service層主要負(fù)責(zé)業(yè)務(wù)模塊的應(yīng)用邏輯應(yīng)用設(shè)計(jì)。同樣是首先設(shè)計(jì)接口,再設(shè)計(jì)其實(shí)現(xiàn)類,接著再Spring的配置文件中配置其實(shí)現(xiàn)的關(guān)聯(lián)。這樣我們就可以在應(yīng)用中調(diào)用service接口來進(jìn)行業(yè)務(wù)處理。service層的業(yè)務(wù)實(shí),具體要調(diào)用已經(jīng)定義的dao層接口,封裝service層業(yè)務(wù)邏輯有利于通用的業(yè)務(wù)邏輯的獨(dú)立性和重復(fù)利用性。程序顯得非常簡潔。

3、controller層

Controler負(fù)責(zé)請求轉(zhuǎn)發(fā),接受頁面過來的參數(shù),傳給Service處理,接到返回值,再傳給頁面。

controller層負(fù)責(zé)具體的業(yè)務(wù)模塊流程的控制,在此層要調(diào)用service層的接口來控制業(yè)務(wù)流程,控制的配置也同樣是在Spring的配置文件里進(jìn)行,針對具體的業(yè)務(wù)流程,會有不同的控制器。我們具體的設(shè)計(jì)過程可以將流程進(jìn)行抽象歸納,設(shè)計(jì)出可以重復(fù)利用的子單元流程模塊。這樣不僅使程序結(jié)構(gòu)變得清晰,也大大減少了代碼量。

關(guān)系

Service層是建立在DAO層之上的,建立了DAO層后才可以建立Service層,而Service層又是在Controller層之下的,因而Service層應(yīng)該既調(diào)用DAO層的接口,又要提供接口給Controller層的類來進(jìn)行調(diào)用,它剛好處于一個中間層的位置。每個模型都有一個Service接口,每個接口分別封裝各自的業(yè)務(wù)處理方法。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringMVC+MyBatis實(shí)現(xiàn)多數(shù)據(jù)源切換

    SpringMVC+MyBatis實(shí)現(xiàn)多數(shù)據(jù)源切換

    在企業(yè)級應(yīng)用開發(fā)中,經(jīng)常需要處理來自不同數(shù)據(jù)庫的數(shù)據(jù),為了滿足這一需求,我們可以通過配置多個數(shù)據(jù)源來實(shí)現(xiàn)對不同數(shù)據(jù)庫的訪問,下面我們來看看具體實(shí)現(xiàn)吧
    2025-01-01
  • SpringBoot排除自動加載數(shù)據(jù)源方式

    SpringBoot排除自動加載數(shù)據(jù)源方式

    這篇文章主要介紹了SpringBoot排除自動加載數(shù)據(jù)源方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SpringBoot 中實(shí)現(xiàn)跨域的5種方式小結(jié)

    SpringBoot 中實(shí)現(xiàn)跨域的5種方式小結(jié)

    這篇文章主要介紹了SpringBoot 中實(shí)現(xiàn)跨域的5種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • SpringBoot中配置log4j2日志詳解

    SpringBoot中配置log4j2日志詳解

    這篇文章主要介紹了SpringBoot中配置log4j2日志詳解,Apache Log4j2 是對原先的 Log4j 項(xiàng)目的升級版本,參考了 logback 的一些優(yōu)秀的設(shè)計(jì),并且修復(fù)了一些問題,因此帶來了一些重大的提升,需要的朋友可以參考下
    2023-11-11
  • springBoot解決static和@Component遇到的bug

    springBoot解決static和@Component遇到的bug

    這篇文章主要介紹了springBoot解決static和@Component遇到的bug,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java Socket編程(二) Java面向連接的類

    Java Socket編程(二) Java面向連接的類

    Java Socket編程(二) Java面向連接的類...
    2006-12-12
  • 使用javaweb項(xiàng)目對數(shù)據(jù)庫增、刪、改、查操作的實(shí)現(xiàn)方法

    使用javaweb項(xiàng)目對數(shù)據(jù)庫增、刪、改、查操作的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于使用javaweb項(xiàng)目對數(shù)據(jù)庫增、刪、改、查操作的實(shí)現(xiàn)方法,avaWeb是指使用Java語言進(jìn)行Web應(yīng)用程序開發(fā)的技術(shù),可以利用Java編寫一些動態(tài)網(wǎng)頁、交互式網(wǎng)頁、企業(yè)級應(yīng)用程序等,需要的朋友可以參考下
    2023-07-07
  • openGauss數(shù)據(jù)庫JDBC環(huán)境連接配置的詳細(xì)過程(Eclipse)

    openGauss數(shù)據(jù)庫JDBC環(huán)境連接配置的詳細(xì)過程(Eclipse)

    這篇文章主要介紹了openGauss數(shù)據(jù)庫JDBC環(huán)境連接配置(Eclipse),演示基于JDBC開發(fā)的主要步驟,會涉及創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、插入數(shù)據(jù)等,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 四種Java線程池用法解析

    四種Java線程池用法解析

    這篇文章主要為大家解析四種Java線程池用法,內(nèi)容詳細(xì),分析細(xì)致,感興趣的小伙伴們可以參考一下
    2016-04-04
  • springboot?vue接口測試定義編輯功能的實(shí)現(xiàn)

    springboot?vue接口測試定義編輯功能的實(shí)現(xiàn)

    這篇文章主要為大家介紹了springboot?vue接口測試定義編輯功能的實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評論

阿勒泰市| 军事| 永安市| 涟源市| 彰化县| 遂川县| 永胜县| 垫江县| 射阳县| 黑龙江省| 通州区| 酒泉市| 永胜县| 射阳县| 屯门区| 宾阳县| 克拉玛依市| 资溪县| 阿拉尔市| 吕梁市| 炎陵县| 同仁县| 中牟县| 新龙县| 勐海县| 长治县| 会昌县| 沁阳市| 博兴县| 南康市| 贞丰县| 揭东县| 珠海市| 钟山县| 扬州市| 万宁市| 巴彦县| 武威市| 修文县| 高碑店市| 蓝田县|