SpringBoot2.1腳手架(種子)專案

赤阪空太發表於2018-12-10

專案地址:github.com/ocubexo/spr…

專案已更新至2.0.0 Beta 檢視更新內容

簡介

這是一個基於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, @RequestBody sthPosted) {
    // 根據ID判斷許可權
}
複製程式碼

更新內容:

  1. 更加詳細全面的功能文件
  2. 重構部分程式碼
  3. 新增更多的異常接管
  4. 新增自動插入建立與更新日期功能(基於MybatisPlus 特性
  5. 優化程式碼結構,將功能性的部分模組化,便於後期的維護或升級為 SpringCloud 專案
  6. 增強@Auth 註解的程式碼健壯性

相關文章