Springboot中的三個(gè)基本架構(gòu)
前言
SpringBoot是由Pivotal團(tuán)隊(duì)提供的基于Spring的框架,旨在簡(jiǎn)化Spring應(yīng)用的初始搭建和開發(fā)過程。
該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。
SpringBoot是一個(gè)強(qiáng)大且易于使用的框架,它可以幫助開發(fā)者快速構(gòu)建、部署和運(yùn)行Spring應(yīng)用程序。
Springboot的三個(gè)基本架構(gòu)
分層思想:
分層的目的是為了將每個(gè)業(yè)務(wù)交給專門的一個(gè)層去做處理,這樣每個(gè)層都只負(fù)責(zé)自己的業(yè)務(wù),最后協(xié)作,就不會(huì)出現(xiàn)雜亂的情況。
所以,一般都會(huì)進(jìn)行分層,而controller層、service層和mapper層(dao層)Springbootd的三個(gè)基本架構(gòu)。
1、controller層
- 1.1 定義:
控制層,存放了各種控制器,用于前后端交互,接受前端請(qǐng)求,調(diào)用service層,響應(yīng)service層返回的數(shù)據(jù),最后返回給前端。
- 1.2 常見注解:
@Controller 注解表示這個(gè)類是一個(gè)控制器。
- @RequestMapping(“/hello”) 注解在類級(jí)別上,表示這個(gè)控制器中的所有請(qǐng)求映射都將以/hello為前綴。
- @GetMapping(“/world”) 注解在方法級(jí)別上,表示當(dāng)收到一個(gè)GET請(qǐng)求到/hello/world時(shí),會(huì)調(diào)用helloWorld()方法。
2、service層
- 2.1、定義:
服務(wù)層,也叫業(yè)務(wù)層,本身不直接對(duì)數(shù)據(jù)庫進(jìn)行操作,一般用于調(diào)用mapper層的接口,實(shí)現(xiàn)業(yè)務(wù)的功能,以此來間接來訪問數(shù)據(jù)庫。
- 2.2、常見注解:
@Service注解表示這個(gè)類是一個(gè)業(yè)務(wù)邏輯服務(wù)組件。
3、mapper(dao)層
- 定義:
持久層,相當(dāng)于一個(gè)橋梁,與數(shù)據(jù)庫進(jìn)行交互,專注于數(shù)據(jù)庫對(duì)接,可以讓我們的代碼更容易維護(hù),同時(shí)實(shí)現(xiàn)對(duì)數(shù)據(jù)的持久化操作。
Springboot三個(gè)基本架構(gòu)的關(guān)系
Controller層,負(fù)責(zé)具體的業(yè)務(wù)模塊流程的控制,也就是去攔截客戶發(fā)來的請(qǐng)求。
然后Service層,負(fù)責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計(jì),調(diào)用 mapper 層已定義的接口,去實(shí)現(xiàn) Service 具體的實(shí)現(xiàn)類,也就是去和數(shù)據(jù)庫mapper層打交道。
mapper 層負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行交互設(shè)計(jì),用來處理數(shù)據(jù)的持久化工作,mapper層的數(shù)據(jù)源配置,以及有關(guān)數(shù)據(jù)庫連接的參數(shù)都在 Spring 的配置文件中進(jìn)行配置。
總結(jié)
使用這種分層架構(gòu)的優(yōu)點(diǎn)包括明確的職責(zé)劃分、降低模塊之間的耦合度、提高代碼的可重用性和可測(cè)試性。
每個(gè)層級(jí)都有其特定的職責(zé)和關(guān)注點(diǎn),這使得代碼更加清晰、易于理解和維護(hù)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot加載命令行參數(shù)ApplicationArguments的實(shí)現(xiàn)
本文主要介紹了springboot加載命令行參數(shù)ApplicationArguments的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Java之String、StringBuffer、StringBuilder的區(qū)別分析
今天搞安卓在看書的時(shí)候遇到了StringBuilder這個(gè)類型的東東,有點(diǎn)小迷,不知道它跟string、stringbuffer的關(guān)系式怎么樣的,趕快查閱相關(guān)資料,了解了個(gè)大概,拿出來分享一下2012-11-11如何用idea編寫并運(yùn)行第一個(gè)spark scala處理程序
詳細(xì)介紹了如何使用IntelliJ IDEA創(chuàng)建Scala項(xiàng)目,包括配置JDK和Scala SDK,添加Maven支持,編輯pom.xml,并創(chuàng)建及運(yùn)行Scala程序,這為Scala初學(xué)者提供了一個(gè)基礎(chǔ)的項(xiàng)目搭建和運(yùn)行指南2024-09-09Spring Boot詳細(xì)打印啟動(dòng)時(shí)異常堆棧信息詳析
這篇文章主要給大家介紹了關(guān)于Spring Boot詳細(xì)打印啟動(dòng)時(shí)異常堆棧信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Spring Boot 2結(jié)合Spring security + JWT實(shí)現(xiàn)微信小程序登錄
這篇文章主要介紹了Spring Boot 2結(jié)合Spring security + JWT實(shí)現(xiàn)微信小程序登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01