子模塊介紹,開發規范說明和工具類封裝

在上一章的內容中,我們完成了聚合工程的搭建以及工程依賴的導入

當然我們會延續上一章的傳統提供一個傳送門給各位,如未完成上一章內容,請點擊左側->傳送門

概述子模塊

上一章我們已經創建了整個聚合工程

該聚合工程有以下子模塊

 <modules><module>xxx-common</module><module>xxx-account</module><module>xxx-engine</module><module>xxx-data</module><module>xxx-gateway</module></modules>

我們來一一介紹

xxx-common

? ? ? ? 這是一個公共的包,包含很多的工具類

xxx-account

? ? ? ? 關于用戶相關的類

xxx-engine

? ? ? ? 最重要的模塊,壓測引擎,分為三大板塊:接口自動化、UI自動化、壓測

xxx-data

? ? ? ? 有關數據的內容

xxx-gateway

? ? ? ? 有關網關的內容

接下來就講一下工具類

工具類封裝

JsonData

這個Java類用于封裝返回給客戶端的JSON數據,接下來逐一解釋。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonData {

這三個注釋其實就是由Lombok庫提供的,用于自動生成常用的數據封裝方法。

 /*** 狀態碼 0 表示成功*/private Integer code;/*** 數據*/private Object data;/*** 描述*/private String msg;

以上是這個類最關鍵的三個成員變量,code是和http響應碼不同的,data存放的是返回來的數據,msg用于存儲返回結果的描述和錯誤信息。

public <T> T getData(Class<T> typeReference)
{return JSON.parseObject(JSON.toJSONString(data),typeReference);
}

先將data對象轉換成JSON字符串,然后再將這個JSON字符串轉換成typeReference類型的對象,最后返回這個轉換后的對象。

getData()?方法使用了 JSON 庫的?parseObject()?和?toJSONString()?方法,將?JsonData?對象中的?data?屬性轉換為目標類型的對象。這使得在使用?JsonData?對象時,可以方便地獲取存儲的數據,并將其轉換為所需的類型進行后續操作。

public static JsonData buildSuccess() 
{return new JsonData(0, null, null);
}

這是一個靜態方法,用于構建表示成功的JsonData對象,不傳入任何數據。

public static JsonData buildSuccess(Object data) 
{return new JsonData(0, data, null);
}

這是另一個靜態方法,用于構建表示成功的JsonData對象,并傳入數據。

public static JsonData buildCodeAndMsg(int code, String msg) 
{return new JsonData(code, null, msg);
}

這是一個靜態方法,用于構建表示錯誤的JsonData對象,并傳入描述信息。

public static JsonData buildResult(BizCodeEnum codeEnum)
{return JsonData.buildCodeAndMsg(codeEnum.getCode(),codeEnum.getMessage());
}

這是一個靜態方法,接收一個自定義的枚舉類型BizCodeEnum,通過該枚舉對象的狀態碼和描述信息構建JsonData對象。

public boolean isSuccess()
{return code == 0;
}

這是一個實例方法,用于判斷JsonData對象是否表示成功,如果狀態碼為0,則返回true,否則返回false

BizException

@Data
public class BizException extends RuntimeException {private int code;private String msg;private String detail;public BizException(Integer code, String message) {super(message);this.code = code;this.msg = message;}public BizException(BizCodeEnum bizCodeEnum){super(bizCodeEnum.getMessage());this.code = bizCodeEnum.getCode();this.msg = bizCodeEnum.getMessage();}public BizException(BizCodeEnum bizCodeEnum,Exception e){super(bizCodeEnum.getMessage());this.code = bizCodeEnum.getCode();this.msg = bizCodeEnum.getMessage();this.detail = e.toString();}
}
@Data 注解由 Lombok庫提供,用于自動生成 getter、setter 方法等。
BizException 類繼承了 RuntimeException,表示它是一個運行時異常。
類中定義了一些屬性,包括錯誤碼 code、錯誤信息 msg 和詳細信息 detail。
BizException 類提供了多個構造方法,用于創建不同類型的業務異常對象。構造方法根據傳入的參數設置對應的屬性值。

CustomExceptionHandler

@ControllerAdvice
//@RestControllerAdvice
@Slf4j
public class CustomExceptionHandler {@ExceptionHandler(value = Exception.class)@ResponseBodypublic JsonData handler(Exception e){if(e instanceof BizException bizException){log.error("[業務異常]{}",e);return JsonData.buildCodeAndMsg(bizException.getCode(),bizException.getMsg());}else {log.error("[系統異常]{}",e);return JsonData.buildError("系統異常");}}}

@ControllerAdvice 注解表示這是一個全局異常處理類,用于處理應用程序中出現的異常。
@Slf4j注解添加了日志記錄功能。
@ExceptionHandler注解用于指定處理異常的方法。
@ResponseBody 注解表示方法返回的是響應體數據,而不是視圖頁面。

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

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

相關文章

如何將一個Web應用部署到 Kubernetes 集群

Kubernetes&#xff08;常簡稱為 k8s&#xff09;是一個是一個開源的容器編排平臺&#xff0c;由 Google 設計并捐贈給 Cloud Native Computing Foundation&#xff08;CNCF&#xff09;的開源平臺。它旨在提供一個標準化的容器部署流程&#xff0c;讓部署、擴展和管理應用程序…

C# WinForm —— 18 NumericUpDown 介紹

1. 簡介 數字顯示框&#xff0c;通過向上、向下按鈕來 增加/減小 顯示的數值 2. 常用屬性 屬性解釋(Name)控件ID&#xff0c;在代碼里引用的時候會用到,一般以 numUD 開頭Hexadecimal數值 up-down 控件的值是否應以十六進制顯示Increment每單擊一下按鈕&#xff0c;增加或減…

springboot基本使用十(搭建jpa)

jpa底層是hibernate,(ORM)對象關系映射技術 jpa依賴: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> 配置文件: server:port: 8088Spring:datasou…

音源分離|Music Source Separation in the Waveform Domain

一、文章摘要 本文中&#xff0c;比較了兩種時域結構。首先將最初為語音源分離而開發的卷積tasnet應用于音樂源分離任務。雖然ConvTasnet擊敗了許多現有的頻域方法&#xff0c;但正如人類評估所顯示的那樣&#xff0c;它存在明顯的artifacts。本文提出了一種新的時域模型Demucs…

鴻蒙內核源碼分析 (協處理器篇) | CPU 的好幫手

本篇很重要&#xff0c;對CP15協處理所有16個寄存器一一介紹&#xff0c;可能是全網介紹CP15最全面的一篇&#xff0c;鴻蒙內核的匯編部分(尤其開機啟動)中會使用&#xff0c;熟練掌握后看匯編代碼將如虎添翼。 協處理器 協處理器 (co-processor) 顧名思義是協助主處理器完成…

服務器渲染和客戶端渲染:解析服務器渲染(SSR)和客戶端渲染(CSR)的概念,各自的優點和缺點,并比較如Next.js, Nuxt.js等解決方案

首先從概念上區分&#xff0c;服務器渲染&#xff08;Server-side Rendering&#xff0c;簡稱 SSR&#xff09;和客戶端渲染&#xff08;Client-side Rendering&#xff0c;簡稱 CSR&#xff09;主要的區別在于頁面的渲染地點不同&#xff1a; 服務器渲染&#xff0c;即 SSR&am…

韻搜坊(全棧)-- 前后端初始化

文章目錄 前端初始化后端初始化 前端初始化 使用ant design of vue 組件庫 官網快速上手&#xff1a;https://www.antdv.com/docs/vue/getting-started-cn 安裝腳手架工具 進入cmd $ npm install -g vue/cli # OR $ yarn global add vue/cli創建一個項目 $ vue create ant…

社交媒體數據恢復:默往

如果你在默往社交軟件中丟失了重要的數據&#xff0c;不要著急&#xff0c;以下是一些步驟可以幫助你進行數據恢復&#xff1a; 登錄賬號&#xff1a;首先&#xff0c;你需要登錄默往社交軟件賬號&#xff0c;確保你已經登錄了正確的賬號&#xff0c;因為如果你登錄了錯誤的賬號…

邦芒簡歷:如何恰當呈現跳槽經歷在簡歷中

在職業生涯中&#xff0c;跳槽往往伴隨著個人的成長與選擇。然而&#xff0c;頻繁或不當的跳槽記錄可能會給HR留下不穩定的印象。因此&#xff0c;在撰寫簡歷時&#xff0c;如何恰當地呈現跳槽經歷就顯得尤為重要。 1、短期工作經歷的處理 對于短期工作經歷&#xff08;尤其是…

弘君資本策略:股指預計保持震蕩上揚格局 關注公用事業、電網設備等板塊

弘君資本指出&#xff0c;周一A股商場探底上升、小幅震動收拾&#xff0c;早盤股指低開后震動回落&#xff0c;滬指盤中在3126點附近取得支撐&#xff0c;午后股指企穩上升&#xff0c;盤中電網設備、公用事業、電力以及工程建造等職業體現較好&#xff1b;半導體、互聯網以及軟…

掌握社交的這二十個心理技巧

1.自信&#xff1a;這一點說起來容易做起來難&#xff0c;但就算是假裝出來的自信&#xff0c;通過你的肢體語言表現出來。在很大程度也可以幫助你留下很好的第一印象。人們喜歡自信的人。因為他們更可靠&#xff0c;更值得信賴&#xff0c;更具吸引力。 2.當你第一次見到某人…

PXE+Kickstart無人值守安裝安裝Centos7.9

文章目錄 一、什么是PXE1、簡介2、工作模式3、工作流程 二、什么是Kickstart1、簡介2、觸發方式 三、無人值守安裝系統工作流程四、實驗部署1、環境準備2、服務端&#xff1a;關閉防火墻和selinux3、添加一張僅主機的網卡4、配置僅主機的網卡4.1、修改網絡連接名4.2、配IP地址4…

差異基因散點圖繪制教程

差異基因散點圖繪制教程 本期教程 小杜的生信筆記&#xff0c;自2021年11月開始做的知識分享&#xff0c;主要內容是R語言繪圖教程、轉錄組上游分析、轉錄組下游分析等內容。凡事在社群同學&#xff0c;可免費獲得自2021年11月份至今全部教程&#xff0c;教程配備事例數據和相…

最新版Ceph( Reef版本)塊存儲簡單對接k8s(上集)

當前ceph 你的ceph集群上執行 1.創建名為k8s-rbd 的存儲池 ceph osd pool create k8s-rbd 64 642.初始化 rbd pool init k8s-rbd3 創建k8s訪問塊設備的認證用戶 ceph auth get-or-create client.kubernetes mon profile rbd osd profile rbd poolk8s-rbd部署 ceph-rbd-csi c…

List集合的復制方式

List集合的復制方式主要有以下幾種: 使用構造器復制 創建一個新的List集合,并將原始List集合作為參數傳遞給它的構造器。例如,List<String> newList = new ArrayList<>(originalList)。這種方式會創建一個新的List對象,并將原始List的所有元素復制到新List中…

快速學習SpringAi

Spring AI是AI工程師的一個應用框架&#xff0c;它提供了一個友好的API和開發AI應用的抽象&#xff0c;旨在簡化AI應用的開發工序&#xff0c;例如開發一款基于ChatGPT的對話應用程序。通過使用Spring Ai使我們更簡單直接使用chatgpt 1.創建項目 jdk17 引入依賴 2.依賴配置 …

同城組局同城活動找搭子小程序JAVA源碼面芽組局的實現方案

功能概述 基于微信小程序開發的一款軟件&#xff0c;支持用戶動態發布、私信聊天關注、禮物充值打賞、發起活動組局、用戶報名參與、支持商家入駐&#xff0c;對接廣告功能等。 活動發布&#xff1a;用戶可以在平臺上發布各種類型的活動&#xff0c;如戶外徒步、音樂會觀賞、…

AI應用案例:會議紀要自動生成

以騰訊會議轉錄生成的會議記錄為研究對象&#xff0c;借助大模型強大的語義理解和文本生成等能力&#xff0c;利用指令和文本向量搜索實現摘要總結、要點提取、行動項目提取、會議紀要生成等過程&#xff0c;完成會議紀要的自動總結和生成&#xff0c;降低人工記錄和整理時間成…

React 第三十章 React 和 Vue 描述頁面的區別

面試題&#xff1a;React 和 Vue 是如何描述 UI 界面的&#xff1f;有一些什么樣的區別&#xff1f; 標準且淺顯的回答&#xff1a; React 中使用的是 JSX&#xff0c;Vue 中使用的是模板來描述界面 前端領域經過長期的發展&#xff0c;目前有兩種主流的描述 UI 的方案&#xf…

Q1季度電飯煲家電行業線上市場(京東天貓淘寶)銷售數據排行榜

鯨參謀監測的2024年Q1季度線上電商平臺&#xff08;天貓淘寶京東&#xff09;電飯煲家電銷售數據已出爐&#xff01; 今年Q1季度&#xff0c;電飯煲銷售成績不如預期。根據鯨參謀數據顯示&#xff0c;今年Q1季度在線上電商平臺&#xff08;淘寶天貓京東&#xff09;電飯煲銷量…