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

項目地址:github.com/ocubexo/spr…html

項目已更新至2.0.0 Beta 查看更新內容java

簡介

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

快速開始

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

內置功能與使用方法

RESTful風格Result生成器

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

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

返回結果示例:spring

{
    "code": 200,
    "message": "Success",
    "data": null
}
複製代碼

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

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

// 固然你也能夠返回對象或其餘類型的數據
User user = new User();
return new Result().success(user);
複製代碼

返回結果示例:json

{
    "code": 200,
    "message": "Success",
    "data": "Hello,world"
}
複製代碼

或者是:springboot

{
    "code": 200,
    "message": "Success",
    "data": {
        "name": "jack",
        "age": 20
    }
}
複製代碼

3.錯誤結果:服務器

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

// 你還能夠自定義錯誤結果的code
return new Result().fail(null, "未登陸", 401);
複製代碼

返回結果示例:restful

{
    "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 註解的代碼健壯性
相關文章
相關標籤/搜索