SpringBoot項目中各層的關(guān)系及作用說明
一、Controller(控制層)
顧名思義,業(yè)務(wù)控制,就是控制業(yè)務(wù)層Service的,它的作用主要是架起了外界與業(yè)務(wù)層溝通的橋梁,移動端,前端在調(diào)用接口訪問相關(guān)業(yè)務(wù)時,都會通過Controller,由Controller去調(diào)相關(guān)的業(yè)務(wù)層代碼并把數(shù)據(jù)返回給移動端和前端。
特點:
- Controller層為控制層,一般使用 @RestController 或 @Controller 注解來標識。
- 在 Spring Boot 中,控制層負責(zé)接收請求并將請求轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)層進行處理,同時將處理結(jié)果返回給客戶端。
- 導(dǎo)入service層,調(diào)用你service方法,controller通過接收前端傳來的參數(shù)進行業(yè)務(wù)操作,在返回一個指定的路徑或數(shù)據(jù)表。
二、Service(業(yè)務(wù)管理層)
業(yè)務(wù)層,所有的內(nèi)部的業(yè)務(wù)邏輯都會放在這里處理,比如用戶的增刪改查,或者發(fā)送個驗證碼或郵件,或者做一個抽獎活動等等等等,都會在Service中進行,當然,業(yè)務(wù)離肯定是離不開數(shù)據(jù)的支持,因此是必不可少的。
特點:
- Service層為服務(wù)層,一般使用 @Service 注解來標識。
- 在 Spring Boot 中,服務(wù)層負責(zé)實現(xiàn)業(yè)務(wù)邏輯。它們相當于一系列操作的組合,常見的操作有查詢、修改、刪除等。
- 不直接對數(shù)據(jù)庫進行操作,有接口和接口實現(xiàn)類,提供controller層調(diào)用方法
三、Dao(Mapper層)
數(shù)據(jù)持久化層,就是和數(shù)據(jù)庫打交道的,而實現(xiàn)持久化層的框架又有很多,而常用的有兩種:JPA和MyBatis,JPA是SpringBoot官方的,前身就是著名的三大框架之一的Hibernate,好處是不用手寫SQL(當然它也支持手寫,如果必要的話),國外用的比較多,而MyBatis則在國內(nèi)比較流行,原因是它的靈活性非常高,但是需要手寫SQL語句。
特點:
- Dao層為數(shù)據(jù)訪問層,數(shù)據(jù)訪問層通常使用 JPA 或 MyBatis 等 ORM 框架來簡化數(shù)據(jù)庫操作。
- 在 Spring Boot 中,數(shù)據(jù)訪問層是與數(shù)據(jù)庫進行交互的層次,負責(zé)對數(shù)據(jù)庫進行增刪改查等操作。
- 針對數(shù)據(jù)庫操作,基本上用的就是增刪改查,就是一個接口,只有方法名,具體實現(xiàn)在mapper.xml中
四、Entity(實體層)
實體層主要用于定義業(yè)務(wù)領(lǐng)域中的實體對象,比如用戶、產(chǎn)品、訂單等。這些實體類通常包含屬性、方法和與數(shù)據(jù)庫表字段的映射關(guān)系,用于封裝和操作數(shù)據(jù)。
- entity層為實體層,實體層一般使用 @Entity 注解來標識。
- 在 Spring Boot 中,實體層負責(zé)表示具體的數(shù)據(jù)模型。這些模型映射到數(shù)據(jù)庫中的表結(jié)構(gòu)。它們包含所有操作此實體類對象的方法,比如查詢、添加、刪除等。
- 存放的是實體類,屬性值與數(shù)據(jù)庫值保持一致,實現(xiàn)setter和getter方法
注:也有不同的寫的是四層,即controller層、service層、dao層和entity層
五、configuration(配置層)
配置層在Spring Boot應(yīng)用程序中扮演著至關(guān)重要的角色。它負責(zé)管理應(yīng)用程序的配置信息,并提供對各種配置選項的靈活性和可定制性。(其在運行程序的時候會優(yōu)先加載)
- Configuration層為配置層,配置層一般使用 @Configuration 注解來標識。
- 在 Spring Boot 中,配置層是整個系統(tǒng)的配置中心,負責(zé)定義和管理 Spring Boot 應(yīng)用程序的配置信息。
六、Utils(工具層)
- Utils層為工具類層,可以自定義工具類,并使用 @Component 注解將其注入到容器中。
- 在 Spring Boot 中,工具類層負責(zé)封裝一些常用的工具方法,例如日期格式化、加密解密等。
七、架構(gòu)圖例和圖解
----------------------------------------- | Presentation Layer | ----------------------------------------- | Web Controllers | ----------------------------------------- | | ----------------------------------------- | Service Layer | ----------------------------------------- | Business Services | ----------------------------------------- | | ----------------------------------------- | Data Access Layer | ----------------------------------------- | Repositories | | ORM Framework | | Database | ----------------------------------------- | | ----------------------------------------- | Utility Layer | ----------------------------------------- | Utility/Helper Classes | -----------------------------------------

?總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- SpringBoot項目docker分層鏡像構(gòu)建案例
- SpringBoot項目中Controller層代碼編寫規(guī)范整理方式
- SpringCloud+SpringBoot項目搭建結(jié)構(gòu)層次的實例
- SpringBoot頂層接口實現(xiàn)類注入項目的方法示例
- springboot項目docker分層構(gòu)建的配置方式
- springboot項目中controller層與前端的參數(shù)傳遞方式
- java報錯之springboot3+vue2項目web服務(wù)層報錯總結(jié)
- SpringBoot項目多層級多環(huán)境yml設(shè)計詳解
- springboot項目完整后端請求Controller層優(yōu)雅處理
相關(guān)文章
IDEA創(chuàng)建SpringBoot項目整合mybatis時mysql-connector-java報錯異常的詳細分析
最近工作中發(fā)現(xiàn)了個錯誤,分享給同樣遇到這個問題的朋友,這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建SpringBoot項目整合mybatis時mysql-connector-j報錯異常的詳細分析,需要的朋友可以參考下2023-02-02
Maven-3.6.1下載與環(huán)境搭建(解決IDEA兼容問題)及其配置教程
本文介紹了如何解決Maven 3.6.1及以上版本在IDEA中使用時自動導(dǎo)包出現(xiàn)紅色報錯的問題,并詳細講解了如何下載、配置和使用Maven2026-02-02
SpringBoot中使用MyBatis-Plus實現(xiàn)分頁接口的詳細教程
MyBatis-Plus是一個MyBatis的增強工具,在MyBatis的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生,在SpringBoot項目中使用MyBatis-Plus可以大大簡化分頁邏輯的編寫,本文將介紹如何在 SpringBoot項目中使用MyBatis-Plus實現(xiàn)分頁接口2024-03-03
springboot實現(xiàn)rtsp視頻推流的示例代碼
本文指導(dǎo)通過Docker搭建RTSP服務(wù),配置Maven依賴,創(chuàng)建RtspStreamer類并測試流地址rtsp://localhost:8554/live的實現(xiàn)過程,感興趣的可以了解一下2025-07-07
SpringBoot攔截器實現(xiàn)登錄攔截的方法示例
這篇文章主要介紹了SpringBoot攔截器實現(xiàn)登錄攔截的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
詳談jpa中表的@OneToMany等關(guān)聯(lián)關(guān)系
這篇文章主要介紹了詳談jpa中表的@OneToMany等關(guān)聯(lián)關(guān)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
【IntelliJ IDEA】Maven構(gòu)建自己的第一個Java后臺的方法
本篇文章主要介紹了Maven構(gòu)建自己的第一個Java后臺的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12

