欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

零、業(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)文章

  • SpringBoot下載文件的正確解法方式

    SpringBoot下載文件的正確解法方式

    這篇文章主要給大家介紹了關(guān)于SpringBoot下載文件的正確解法方式,SpringBoot是一款流行的框架,用于開發(fā)Web應(yīng)用程序,在使用SpringBoot構(gòu)建Web應(yīng)用程序時,可能需要實(shí)現(xiàn)文件下載的功能,需要的朋友可以參考下
    2023-08-08
  • Java實(shí)現(xiàn)文件和base64流的相互轉(zhuǎn)換功能示例

    Java實(shí)現(xiàn)文件和base64流的相互轉(zhuǎn)換功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)文件和base64流的相互轉(zhuǎn)換功能,涉及Java文件讀取及base64 轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • spring cloud zuul修改請求url的方法

    spring cloud zuul修改請求url的方法

    這篇文章主要給大家介紹了關(guān)于spring cloud zuul修改請求url的方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring cloud具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-09-09
  • Java算法之遞歸算法計(jì)算階乘

    Java算法之遞歸算法計(jì)算階乘

    這篇文章主要為大家詳細(xì)介紹了Java遞歸算法計(jì)算階乘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • 創(chuàng)建Spring Boot項(xiàng)目的幾種方式總結(jié)(推薦)

    創(chuàng)建Spring Boot項(xiàng)目的幾種方式總結(jié)(推薦)

    這篇文章主要介紹了創(chuàng)建Spring Boot項(xiàng)目的幾種方式總結(jié)(推薦),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 基于Maven導(dǎo)入pom依賴很慢的解決方案

    基于Maven導(dǎo)入pom依賴很慢的解決方案

    這篇文章主要介紹了Maven導(dǎo)入pom依賴很慢的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot系列教程JPA之基礎(chǔ)環(huán)境搭建的方法

    SpringBoot系列教程JPA之基礎(chǔ)環(huán)境搭建的方法

    這篇文章主要介紹了SpringBoot系列教程JPA之基礎(chǔ)環(huán)境搭建的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • java web實(shí)現(xiàn)用戶權(quán)限管理

    java web實(shí)現(xiàn)用戶權(quán)限管理

    這篇文章主要介紹了java web實(shí)現(xiàn)用戶權(quán)限管理,設(shè)計(jì)并實(shí)現(xiàn)一套簡單的權(quán)限管理功能,感興趣的小伙伴們可以參考一下
    2015-11-11
  • MyBatis圖文并茂講解注解開發(fā)一對多查詢

    MyBatis圖文并茂講解注解開發(fā)一對多查詢

    這篇文章主要介紹了SpringBoot中Mybatis注解一對多查詢的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Java中Synchronized鎖的使用和原理詳解

    Java中Synchronized鎖的使用和原理詳解

    這篇文章主要介紹了Java中Synchronized鎖的使用和原理詳解,synchronized是?Java?內(nèi)置的關(guān)鍵字,它提供了一種獨(dú)占的加鎖方式,synchronized的獲取和釋放鎖由JVM實(shí)現(xiàn),用戶不需要顯示的釋放鎖,非常方便,需要的朋友可以參考下
    2023-07-07

最新評論