亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2018年12月10日 14:28:20   作者:赤坂空太  
這篇文章主要介紹了SpringBoot2.1 RESTful API項(xiàng)目腳手架(種子)項(xiàng)目,用于搭建RESTful API工程的腳手架,只需三分鐘你就可以開(kāi)始編寫業(yè)務(wù)代碼,不再煩惱于構(gòu)建項(xiàng)目與風(fēng)格統(tǒng)一,感興趣的小伙伴們可以參考一下

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

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

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

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

簡(jiǎn)介

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

快速開(kāi)始

  1. 構(gòu)建數(shù)據(jù)庫(kù)
  2. 運(yùn)行/src/test下的CodeGenerator.java進(jìn)行代碼生成
  3. 開(kāi)始編寫業(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)然你也可以返回對(duì)象或其他類型的數(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.錯(cuò)誤結(jié)果:

// fail方法的參數(shù)(錯(cuò)誤代碼,錯(cuò)誤信息)
return new Result().fail(10400, "登陸失敗,密碼錯(cuò)誤");

// 你還可以自定義錯(cuò)誤結(jié)果的code
return new Result().fail(null, "未登錄", 401);

返回結(jié)果示例:

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

或者:

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

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

// 參數(shù)說(shuō)明(錯(cuò)誤信息, 錯(cuò)誤Code)
throw new ServiceException("未登錄", 401);

// 你也可以返回錯(cuò)誤代碼
throw new ServiceException(10404, "服務(wù)器維護(hù)中", 404);

返回結(jié)果示例:

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

或者:

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

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

@Autowired
private TokenService tokenService;

// 生成Payload
Map<String,Object> payload = new HashMap<String,Object>();
payload.put("id",1);
// 生成Token
tokenService.generate(TokenType.ACCESS, payload, 1);


// 格式化Token
String token = getYourToken();
tokenService.parse(token); // 返回的結(jié)果是一個(gè)Jwt對(duì)象,詳見(jiàn)JJWT文檔
Auth注解
Auth注解用于獲取當(dāng)前用戶的Token中的userId,在獲取的同時(shí)會(huì)自動(dòng)校驗(yàn)用戶Token,若用戶未登錄則會(huì)拋出未登錄的異常。
// 在controller中使用
@PostMapping("/user/1/edit")
public Result edit(@Auth int userId, @ResponseBody sthPosted) {
  // 根據(jù)ID判斷權(quán)限
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring web集成rabbitmq代碼實(shí)例

    Spring web集成rabbitmq代碼實(shí)例

    這篇文章主要介紹了Spring web集成rabbitmq代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • JVM對(duì)象創(chuàng)建和內(nèi)存分配原理解析

    JVM對(duì)象創(chuàng)建和內(nèi)存分配原理解析

    這篇文章主要介紹了JVM對(duì)象創(chuàng)建和內(nèi)存分配原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法

    SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法

    這篇文章主要介紹了SpringMVC框架實(shí)現(xiàn)Handler處理器的三種寫法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 解決spring boot hibernate 懶加載的問(wèn)題

    解決spring boot hibernate 懶加載的問(wèn)題

    這篇文章主要介紹了解決spring boot hibernate 懶加載的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • Java技巧函數(shù)方法實(shí)現(xiàn)二維數(shù)組遍歷

    Java技巧函數(shù)方法實(shí)現(xiàn)二維數(shù)組遍歷

    這篇文章主要介紹了Java技巧函數(shù)方法實(shí)現(xiàn)二維數(shù)組遍歷,二維數(shù)組遍歷,每個(gè)元素判斷下是否為偶數(shù),相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-08-08
  • Spring中Bean的單例和多例使用說(shuō)明

    Spring中Bean的單例和多例使用說(shuō)明

    這篇文章主要介紹了Spring中Bean的單例和多例使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • MyBatis自定義typeHandler的完整實(shí)例

    MyBatis自定義typeHandler的完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于MyBatis自定義typeHandler的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MyBatis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 細(xì)致解讀希爾排序算法與相關(guān)的Java代碼實(shí)現(xiàn)

    細(xì)致解讀希爾排序算法與相關(guān)的Java代碼實(shí)現(xiàn)

    這篇文章主要介紹了希爾排序算法與相關(guān)的Java代碼實(shí)現(xiàn),希爾排序的時(shí)間復(fù)雜度根據(jù)步長(zhǎng)序列的不同而不同,需要的朋友可以參考下
    2016-05-05
  • Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案

    Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案

    這篇文章主要介紹了Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • spring?mvc?AOP切面方法未執(zhí)行的一種情況的分析和處理過(guò)程

    spring?mvc?AOP切面方法未執(zhí)行的一種情況的分析和處理過(guò)程

    這篇文章主要介紹了spring?mvc?AOP切面方法未執(zhí)行的一種情況的分析和處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論