91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-12 03:06:24 來源:腳本之家 閱讀:223 作者:赤坂空太 欄目:編程語言

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

除此之外,在開發一個Web后端api項目時,通常都會經歷搭建項目、選擇依賴管理工具、引入基礎包依賴、配置框架等,為了加快項目的開發進度(早點下班)還需要封裝一些常用的類和工具,如標準的響應結構體封裝、統一異常處理切面、接口簽名認證、初始化運行方法、輪詢方法、api版本控制封裝、異步方法配置等。

每次開始一個類型的新項目,以上這些步驟又要重復一遍,雖然能夠將老項目拿過來刪刪減減達到目的,但還是很費時費力,還容易出問題。所以,可以利用面向對象的思想,抽取這類Web后端api項目的共同之處封裝成一個項目種子。以后再開發類似的項目,就能直接在這個項目種子上迭代,減少重復勞動。

項目地址:https://github.com/ocubexo/springboot-restful-starter

簡介

這是一個基于SpringBoot 2.1.1 RELEASE,用于搭建RESTful API工程的腳手架,只需三分鐘你就可以開始編寫業務代碼,不再煩惱于構建項目與風格統一。

快速開始

  1. 構建數據庫
  2. 運行/src/test下的CodeGenerator.java進行代碼生成
  3. 開始編寫業務代碼

內置功能與使用方法

RESTful風格Result生成器

1.成功且不帶數據的結果

// 不帶數據的成功結果
return new Result().success();

返回結果示例:

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

2.成功且帶返回數據的結果

return new Result().success("Hello,world");

// 當然你也可以返回對象或其他類型的數據
User user = new User();
return new Result().success(user);

返回結果示例:

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

或者是:

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

3.錯誤結果:

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

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

返回結果示例:

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

或者:

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

RESTful風格的異常接管

// 參數說明(錯誤信息, 錯誤Code)
throw new ServiceException("未登錄", 401);

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

返回結果示例:

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

或者:

{
  "code": 404,
  "message": "服務器維護中",
  "data": 10404
}

基于JWT的認證機制

@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); // 返回的結果是一個Jwt對象,詳見JJWT文檔
Auth注解
Auth注解用于獲取當前用戶的Token中的userId,在獲取的同時會自動校驗用戶Token,若用戶未登錄則會拋出未登錄的異常。
// 在controller中使用
@PostMapping("/user/1/edit")
public Result edit(@Auth int userId, @ResponseBody sthPosted) {
  // 根據ID判斷權限
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英德市| 吉安市| 张北县| 道真| 桦南县| 远安县| 六枝特区| 大英县| 湄潭县| 新竹县| 松桃| 綦江县| 梧州市| 松阳县| 晋中市| 竹北市| 婺源县| 高陵县| 沅陵县| 新晃| 兴业县| 安西县| 瓦房店市| 隆德县| 增城市| 西林县| 九龙坡区| 奎屯市| 万荣县| 漯河市| 文山县| 锦州市| 萍乡市| 海宁市| 吉林省| 山阴县| 金秀| 华蓥市| 南宁市| 龙口市| 东乡|