【后端開發】Spring MVC階段總結

文章目錄

  • 快捷引入依賴
  • lombok的使用
    • Lombok依賴
    • Lombok使用
    • Lombok注解
  • 三層架構
    • 分層的目的
    • MVC與分層的區別
    • 三層架構
    • 分層的好處
  • 企業命名規范
    • 常見命名命名風格介紹
    • 大駝峰風格
    • 小駝峰風格
    • 包名
  • 常見注解
  • Cookie與Session

快捷引入依賴

這個方法可以快捷引入依賴,但是引入依賴并不一定沒有問題,可能需要修改一些。

安裝插件EditStarter, 在pom.xml文件中,單擊右鍵,選擇Generate(或者快捷鍵Alt+Insert),點擊ok,進入EditStarters的編輯界面,添加對應依賴即可。
在這里插入圖片描述

lombok的使用

Lombok依賴

Lombok是?個Java?具庫,通過添加注解的?式,簡化Java的開發。

使用IDEA創建項目或者通過可視化的方法引入lombok后,我的項目中出現了,編譯過程中無法找到對應創建的方法,將下面的配置代碼替換為自動添加的代碼,實現了lombok的效果。

        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version><scope>provided</scope></dependency>
			<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><target>17</target><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version></path></annotationProcessorPaths></configuration></plugin>

Lombok使用

lombok通過?些注解的方式,可以幫助我們消除?些冗長代碼,使代碼看起來簡潔?些。
@Data 注解會幫助自動實現?些方法,包含getter/setter,equals,toString等

@Data
public class MessageInfo {private String from;private String to;private String say;//通過一個工具jar包,通過一個注解@Data來實現對get、set方法的撰寫
}

具體查看加了@Data注解后手機閑了哪些方法,可以通過大家編譯后反編譯的文件進行查看,也就是target文件。
在這里插入圖片描述

Lombok注解

注解作用
@Getter?動添加getter方法
@Setter?動添加setter方法
@ToString?動添加toString方法
@EqualsAndHashCode?動添加equals和hashCode方法
@NoArgsConstructor?動添加?參構造方法
@AllArgsConstructor?動添加全屬性構造方法,順序按照屬性的定義順序
@NonNull屬性不能為null
@RequiredArgsConstructor?動添加必需屬性的構造方法,final+@NonNull 的屬性為必需

@Data=@Getter+@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

三層架構

分層的目的

MVC模式強調數據和視圖分離,將數據展示和數據處理分開,通過控制器對兩者進?組合。
三層架構強調不同維度數據處理的高內聚和低耦合,將交互界面,業務處理和數據庫操作的邏輯分開。
但是?者的目的是相同的,都是"解耦,分層,代碼復用"。

MVC與分層的區別

MVC架構模式由三部分組成,分別是:模型(Model),視圖(View)和控制器(Controller)。
三層架構將業務應用劃分為:表現層,業務邏輯層,數據訪問層。
視圖和控制器合起來對應三層架構中的表現層,模型對應三層架構中的業務邏輯層,數據層,以及實體類。

三層架構

  1. 表現層(Controller):接收前端發送來的請求,對請求進行處理,并結果響應。
  2. 業務邏輯層(service):根據請求,對數據進行加工處理,處理具體的業務邏輯。
  3. 數據層(Dao):數據相關的處理,比如從mysql, hbase等獲取數據等。
    在這里插入圖片描述

在此基礎上,還有會個保存實體類的層(model),但是不同的項目有不同表現。

分層的好處

  • 降低層與層之間的依賴,結構更加的明確,利于各層邏輯的復用。
  • 開發人員可以只關注整個結構中的其中某?層,極大地降低了維護成本和維護時間。
  • 可以很容易的用新的實現來替換原有層次的實現。
  • 有利于標準化。

企業命名規范

常見命名命名風格介紹

大駝峰:所有單詞首字母都需要大寫,又叫帕斯卡命名法,比如: UserController
小駝峰:除了第一個單詞,其他單詞首字母大寫,比如: userController
蛇形:用下劃線(_)作用單詞間的分隔符,一般小寫,又叫下劃線命名法,比如: user_controller
串形:用短橫線(-)作用單詞間的分隔符,又叫脊柱命名法,比如: user-controller

大駝峰風格

類名使用大駝峰風格,但以下情形例外:DO/BO/DTO/VO/AO。

小駝峰風格

方法名、參數名、成員變量、局部變量統?使用小駝峰風格。

包名

包名統?使用小寫,點分隔符之間有且僅有?個自然語義的英語單詞。

常見注解

  • @RequestMapping:路由映射
  • @RequestParam:后端參數重命名
  • @RequestBody:接收JSON類型的參數
  • @PathVariable:接收路徑參數
  • @RequestPart:上傳文件
  • @ResponseBody:返回數據
  • @CookieValue:從Cookie中獲取值
  • @SessionAttribute:從Session中獲取值
  • @RequestHeader:從Header中獲取值
  • @Controller:定義一個控制器,Spring框架啟動時加載,把這個對象交給Spring管理,默認返回視圖
  • @RestController:@ResponseBody+ @Controller 返回數據

Cookie與Session

Cookie和Session都是會話機制,Cookie是客戶端機制,Session是服務端機制。二者通過Sessionld來聯。SpringMVC內置HttpServletRequest,HttpServletResponse兩個對象,需要使用時,直接在方法中添加對應參數即可,Cookie和Session可以從HttpServletRequest中來獲取,也可以直接使用HttpServletResponse設置Http響應狀態碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77553.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FastAPI依賴注入系統及調試技巧

title: FastAPI依賴注入系統及調試技巧 date: 2025/04/11 15:00:50 updated: 2025/04/11 15:00:50 author: cmdragon excerpt: FastAPI的依賴注入系統采用樹狀結構管理依賴關系,自動解析并執行依賴項。復雜依賴關系可能導致循環依賴、性能問題、邏輯錯誤和調試困難。使用Fa…

DeepSeek賦能!企業私有化知識庫3大搭建方案拆解

最近公司要搭建一個私有化的知識庫&#xff0c;通過對比分析&#xff0c;發現企業級私有化知識庫搭建有多種方案選型&#xff0c;今天就分享下這幾種企業私有化知識庫搭建方案。 一、為何選擇本地部署&#xff1f; 這個分個人還是企業&#xff0c;如果個人用&#xff0c;其實各…

對稱加密與非對稱加密與消息摘要算法保證https的數據交互的完整性和保密性

一、對稱加密與非對稱加密的作用 1. 對稱加密 作用&#xff1a; 保密性&#xff1a;對稱加密使用相同的密鑰對數據進行加密和解密&#xff0c;確保數據在傳輸過程中不被竊聽。效率&#xff1a;對稱加密算法&#xff08;如AES&#xff09;計算速度快&#xff0c;適合加密大量數…

程序化廣告行業(76/89):行業融資全景剖析與代碼應用拓展

程序化廣告行業&#xff08;76/89&#xff09;&#xff1a;行業融資全景剖析與代碼應用拓展 大家好&#xff01;在之前的文章里&#xff0c;咱們一起了解了程序化廣告行業的發展趨勢以及PC端和移動端投放的差異。今天&#xff0c;咱們接著深入學習&#xff0c;這次聚焦在程序化…

兩個樹莓派如何通過wifi direct傳輸視頻并顯示

這里寫自定義目錄標題 在兩臺設備上安裝必要軟件Wi-Fi Direct接收端IP&#xff08;自動發現或靜態設置&#xff09;設置攝像頭參數顯示初始化網絡設置 系統架構概述 發送端樹莓派&#xff1a;捕獲視頻&#xff08;攝像頭或視頻文件&#xff09;→ 編碼 → 通過Wi-Fi Direct傳輸…

ubuntu22.04安裝ROS2 humble

參考&#xff1a; https://zhuanlan.zhihu.com/p/702727186 前言&#xff1a; 筆記本安裝了ubuntu20.04安裝ros一直失敗&#xff0c;于是將系統升級為ununut22.04&#xff0c;然后安裝ros&#xff0c;根據上面的教程&#xff0c;目前看來是有可能成功的。 系統升級為ununut…

Python 類型轉換詳解

文章目錄 Python 類型轉換詳解基本類型轉換函數1. 轉換為整數 (int())2. 轉換為浮點數 (float())3. 轉換為字符串 (str())4. 轉換為布爾值 (bool()) 容器類型轉換1. 轉換為列表 (list())2. 轉換為元組 (tuple())3. 轉換為集合 (set())4. 轉換為字典 (dict()) 特殊類型轉換1. AS…

【Python Requests 庫詳解】

目錄 簡介一、安裝與導入安裝導入 二、發送 HTTP 請求1. GET 請求基本請求URL 參數 2. POST 請求表單數據提交JSON 數據提交文件上傳 3. 其他方法PUT 請求示例DELETE 請求示例 三、處理響應1. 響應內容解析文本內容處理二進制內容處理JSON 數據處理 2. 響應狀態與頭信息狀態碼檢…

【Python 開源】你的 Windows 關機助手——PyQt5 版定時關機工具

&#x1f5a5;? 你的 Windows 關機助手——PyQt5 版定時關機工具 相關資源文件已經打包成EXE文件&#xff0c;可雙擊直接運行程序&#xff0c;且文章末尾已附上相關源碼&#xff0c;以供大家學習交流&#xff0c;博主主頁還有更多Python相關程序案例&#xff0c;秉著開源精神的…

【MySQL】002.MySQL數據庫基礎

文章目錄 數據庫基礎1.1 什么是數據庫1.2 基本使用創建數據庫創建數據表表中插入數據查詢表中的數據 1.3 主流數據庫1.4 服務器&#xff0c;數據庫&#xff0c;表關系1.5 MySQL架構1.6 SQL分類1.7 存儲引擎1.7.1 存儲引擎1.7.2 查看存儲引擎1.7.3 存儲引擎對比 前言&#xff1a…

滑動窗口(3)—無重復字符的最長子串

文章目錄 題目解析方法一&#xff1a;滑動窗口解法二&#xff08;暴?求解&#xff09;&#xff08;不會超時&#xff0c;可以通過&#xff09;&#xff1a;附Java代碼 力扣題目&#xff1a;無重復字符的最長子串 題目解析 方法一&#xff1a;滑動窗口 思路和算法 我們先用一…

C++字符串操作詳解

引言 字符串處理是編程中最常見的任務之一&#xff0c;而在C中&#xff0c;我們有多種處理字符串的方式。本文將詳細介紹C中的字符串操作&#xff0c;包括C風格字符串和C的string類。無論你是C新手還是想鞏固基礎的老手&#xff0c;這篇文章都能幫你梳理字符串處理的關鍵知識點…

Vulhub-DC-4靶場通關攻略

下載地址&#xff1a;https://www.vulnhub.com/entry/dc-4,313/ 掃描IP地址 arp-sacn -l掃描端口&#xff0c;開啟了80和22端口 nmap -p- 192.168.112.140訪問80端口 掃描目錄&#xff0c;并沒有發現敏感目錄 嘗試爆破 爆破成功&#xff0c;用戶名admin 密碼happy 登錄成功 …

OfficePlus去掉PDF文件右鍵菜單里的PDF轉換

今天在吾愛破解論壇看到一個求助帖&#xff0c;說是OfficePlus&#xff0c;安裝后&#xff0c;PDF文件的右鍵菜單里多了PDF轉換&#xff0c;想去掉&#xff0c;不知道怎么弄。底下的回復基本都是百度復制或者AI搜索出的答案&#xff0c;大致就是找注冊表里CLASSID下的菜單欄相關…

大模型本地部署系列(3) Ollama部署QwQ[阿里云通義千問]

大家好&#xff0c;我是AI研究者&#xff0c; 今天教大家部署 一個阿里云通義千問大模型。 QwQ大模型簡介 QwQ是由阿里云通義千問&#xff08;Qwen&#xff09;團隊推出的開源推理大模型&#xff0c;專注于提升AI在數學、編程和復雜邏輯推理方面的能力。其核心特點包括&#x…

微信小程序學習實錄12:掌握大數據量軌跡展示的MySQL結構設計

獲取經緯度信息后&#xff0c;mysql建立數據表po_trajectory&#xff0c;字段包含tra_id、longitude、latitude、tra_time和openid。 為微信小程序創建的 po_trajectory 數據表&#xff0c;字段包含 tra_id、longitude、latitude、tra_time 和 openid&#xff0c;從結構設計上…

計算機系統---性能指標(3)續航與散熱

計算機電池續航的性能指標 一、電池基礎物理指標 電池容量&#xff08;核心指標&#xff09; 單位&#xff1a; 毫安時&#xff08;mAh&#xff09;&#xff1a;常見于手機/平板&#xff0c;反映電池存儲電荷量&#xff0c;需結合電壓計算實際能量&#xff08;如3.7V電池&…

貪心算法之最小生成樹問題

1. 貪心算法的基本思想 貪心算法在每一步都選擇局部最優的邊&#xff0c;希望最終得到整體最優的生成樹。常見的兩種 MST 算法為 Kruskal 算法 和 Prim 算法。這兩者均滿足貪心選擇性質和最優子結構性質&#xff0c;即&#xff1a; 貪心選擇性質&#xff1a;局部最優選擇&…

LeetCode hot 100—編輯距離

題目 給你兩個單詞 word1 和 word2&#xff0c; 請返回將 word1 轉換成 word2 所使用的最少操作數 。 你可以對一個單詞進行如下三種操作&#xff1a; 插入一個字符刪除一個字符替換一個字符 示例 示例 1&#xff1a; 輸入&#xff1a;word1 "horse", word2 &q…

2.3 Spark運行架構與流程

Spark運行架構與流程包括幾個核心概念&#xff1a;Driver負責提交應用并初始化作業&#xff0c;Executor在工作節點上執行任務&#xff0c;作業是一系列計算任務&#xff0c;任務是作業的基本執行單元&#xff0c;階段是一組并行任務。Spark支持多種運行模式&#xff0c;包括單…