国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

SpringBoot2.1 RESTful API項(xiàng)目腳手架(種子)項(xiàng)目

2024-07-14 08:43:08
字體:
供稿:網(wǎng)友

最近在做一個大型的J2EE項(xiàng)目,后端語言選擇了Java,理所當(dāng)然的選擇了Spring,使用Spring MVC來做restful風(fēng)格的api開發(fā)很是方便,Spring下面有很多子項(xiàng)目通過Springboot集成也很舒服。程序員都知道溝通很重要,實(shí)際項(xiàng)目中,往往是各自為戰(zhàn),盡管使用的是相同的框架、工具,編寫的代碼卻千差萬別,為了統(tǒng)一基礎(chǔ)代碼風(fēng)格,編寫了這個項(xiàng)目種子。

除此之外,在開發(fā)一個Web后端api項(xiàng)目時,通常都會經(jīng)歷搭建項(xiàng)目、選擇依賴管理工具、引入基礎(chǔ)包依賴、配置框架等,為了加快項(xiàng)目的開發(fā)進(jìn)度(早點(diǎn)下班)還需要封裝一些常用的類和工具,如標(biāo)準(zhǔn)的響應(yīng)結(jié)構(gòu)體封裝、統(tǒng)一異常處理切面、接口簽名認(rèn)證、初始化運(yùn)行方法、輪詢方法、api版本控制封裝、異步方法配置等。

每次開始一個類型的新項(xiàng)目,以上這些步驟又要重復(fù)一遍,雖然能夠?qū)⒗享?xiàng)目拿過來刪刪減減達(dá)到目的,但還是很費(fèi)時費(fèi)力,還容易出問題。所以,可以利用面向?qū)ο蟮乃枷耄槿∵@類Web后端api項(xiàng)目的共同之處封裝成一個項(xiàng)目種子。以后再開發(fā)類似的項(xiàng)目,就能直接在這個項(xiàng)目種子上迭代,減少重復(fù)勞動。

項(xiàng)目地址:https://github.com/ocubexo/springboot-restful-starter

簡介

這是一個基于SpringBoot 2.1.1 RELEASE,用于搭建RESTful API工程的腳手架,只需三分鐘你就可以開始編寫業(yè)務(wù)代碼,不再煩惱于構(gòu)建項(xiàng)目與風(fēng)格統(tǒng)一。

快速開始

  1. 構(gòu)建數(shù)據(jù)庫
  2. 運(yùn)行/src/test下的CodeGenerator.java進(jìn)行代碼生成
  3. 開始編寫業(yè)務(wù)代碼

內(nèi)置功能與使用方法

RESTful風(fēng)格Result生成器

1.成功且不帶數(shù)據(jù)的結(jié)果

// 不帶數(shù)據(jù)的成功結(jié)果return new Result().success();

返回結(jié)果示例:

{  "code": 200,  "message": "Success",  "data": null}

2.成功且?guī)Х祷財(cái)?shù)據(jù)的結(jié)果

return new Result().success("Hello,world");// 當(dāng)然你也可以返回對象或其他類型的數(shù)據(jù)User user = new User();return new Result().success(user);

返回結(jié)果示例:

{  "code": 200,  "message": "Success",  "data": "Hello,world"}

或者是:

{  "code": 200,  "message": "Success",  "data": {    "name": "jack",    "age": 20  }}

3.錯誤結(jié)果:

// fail方法的參數(shù)(錯誤代碼,錯誤信息)return new Result().fail(10400, "登陸失敗,密碼錯誤");// 你還可以自定義錯誤結(jié)果的codereturn new Result().fail(null, "未登錄", 401);

返回結(jié)果示例:

{  "code": 400,  "message": "登陸失敗,密碼錯誤",  "data": 10400}

或者:

{  "code": 401,  "message": "未登錄",  "data": null}

RESTful風(fēng)格的異常接管

// 參數(shù)說明(錯誤信息, 錯誤Code)throw new ServiceException("未登錄", 401);// 你也可以返回錯誤代碼throw new ServiceException(10404, "服務(wù)器維護(hù)中", 404);

返回結(jié)果示例:

{  "code": 401,  "message": "未登錄",  "data": null}

或者:

{  "code": 404,  "message": "服務(wù)器維護(hù)中",  "data": 10404}

基于JWT的認(rèn)證機(jī)制

@Autowiredprivate TokenService tokenService;// 生成PayloadMap<String,Object> payload = new HashMap<String,Object>();payload.put("id",1);// 生成TokentokenService.generate(TokenType.ACCESS, payload, 1);// 格式化TokenString token = getYourToken();tokenService.parse(token); // 返回的結(jié)果是一個Jwt對象,詳見JJWT文檔Auth注解Auth注解用于獲取當(dāng)前用戶的Token中的userId,在獲取的同時會自動校驗(yàn)用戶Token,若用戶未登錄則會拋出未登錄的異常。// 在controller中使用@PostMapping("/user/1/edit")public Result edit(@Auth int userId, @ResponseBody sthPosted) {  // 根據(jù)ID判斷權(quán)限}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿鲁科尔沁旗| 闽侯县| 青铜峡市| 平邑县| 耿马| 广宁县| 正阳县| 五家渠市| 沂水县| 利辛县| 贵州省| 黎川县| 博爱县| 宁安市| 廊坊市| 彝良县| 万年县| 清原| 外汇| 洛阳市| 秦安县| 邹平县| 汽车| 东乌珠穆沁旗| 江安县| 墨江| 宁晋县| 手游| 红桥区| 社会| 万州区| 科技| 梧州市| 广宁县| 苗栗县| 常宁市| 武威市| 肃南| 武威市| 内江市| 龙陵县|