亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

零、業(yè)務邏輯

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

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

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

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

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

二、Service:服務

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

如果把Dao層當作積木,則Service層則是對積木的搭建。

三、Controller:控制器

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

四、model:模型

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

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

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

五、View層

與Controller層關系緊密,View層主要負責前臺jsp頁面的表示。

六、它們之間的關系

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

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

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

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

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

2、service層:服務層

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

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

3、controller層

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

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

關系

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

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

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

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

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

    spring cloud zuul修改請求url的方法

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

    Java算法之遞歸算法計算階乘

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

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

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

    基于Maven導入pom依賴很慢的解決方案

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

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

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

    java web實現(xiàn)用戶權限管理

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

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

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

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

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

最新評論