SpringBoot 統一公共返回類的實現
本文記錄下如何在工程中,配置後臺的統一公共返回類,這樣做目的是為瞭統一返回信息,方便項目進行管理。使用技術:SpringBoot+Swagger+Lombok
項目結構
具體過程如下,在response文件夾下分別建立 CustomizeResultCode 接口,枚舉類ResultCode 實現CustomizeResultCode 接口和Result類:
1 配置自定義返回類接口,該接口中包含 錯誤狀態碼和錯誤信息
public interface CustomizeResultCode { /* 獲取錯誤碼 @return 錯誤狀態碼 */ Integer getCode(); /* 獲取錯誤信息 @return 錯誤信息 */ String getMessage(); }
2 配置返回實現類,註意這裡是個枚舉類,裡面的編碼僅供參考,可以自定義
/** * @Description: 返回碼定義 * 規定: * #200表示成功 * #400表示錯誤 * #1001~1999 區間表示參數錯誤 * #2001~2999 區間表示用戶錯誤 * #3001~3999 區間表示接口異常 * #後面對什麼的操作自己在這裡註明就行瞭 */ public enum ResultCode implements CustomizeResultCode{ /* 成功 */ SUCCESS(200, "成功"), /*錯誤*/ ERROR(400,"錯誤失敗"), /* 默認失敗 */ COMMON_FAIL(999, "失敗"), /* 參數錯誤:1000~1999 */ PARAM_NOT_VALID(1001, "參數無效"), PARAM_IS_BLANK(1002, "參數為空"), /* 用戶錯誤 */ USER_NOT_LOGIN(2001, "用戶未登錄"), USER_ACCOUNT_EXPIRED(2002, "賬號已過期"), USER_CREDENTIALS_ERROR(2003, "密碼錯誤"), /*運行時異常*/ ARITHMETIC_EXCEPTION(9001,"算數異常"); ; private Integer code; private String message; ResultCode(Integer code,String message){ this.code=code; this.message=message; } @Override public Integer getCode() { return code; } @Override public String getMessage() { return message; } }
3 定義具體的返回類方法
@Data public class Result { @ApiModelProperty(value = "是否成功") private Boolean success; @ApiModelProperty (value= "返回碼") private Integer code; @ApiModelProperty(value = "返回消息") private String message; @ApiModelProperty(value = "返回數據") private Map<String,Object> data=new HashMap<>(); /* 構造方法私有化,裡面的方法都為靜態方法 達到保護屬性的作用 */ private Result(){ } /* 使用鏈式編程 該部分在項目組中一般是項目組長寫好的 */ public static Result ok(){ Result result=new Result(); result.setSuccess(true); result.setCode(ResultCode.SUCCESS.getCode()); result.setMessage(ResultCode.SUCCESS.getMessage()); return result; } public static Result error(){ Result result=new Result(); result.setSuccess(false); result.setCode(ResultCode.ERROR.getCode()); result.setMessage(ResultCode.ERROR.getMessage()); return result; } /* 自定義返回成功與否 */ public Result success(Boolean success){ this.setSuccess(success); return this; } public Result message(String message){ this.setMessage(message); return this; } public Result code(Integer code){ this.setCode(code); return this; } public Result data(String key,Object value){ this.data.put(key,value); return this; } public Result data(Map<String,Object>map){ this.setData(map); return this; } }
統一返回類使用
Controller在下面的文件中
@RestController @EnableAutoConfiguration @RequestMapping("/system/info") @Api(value = "系統模塊",tags="系統接口") public class DController { @Autowired private DService dService; @GetMapping @ApiOperation(value = "信息列表",notes = "查詢所有信息") public Result findDs(){ List<Doctordict>list=dService.list(); //鏈式編程 return Result.ok().data("users",list); } }
測試結果成功
到此這篇關於SpringBoot 統一公共返回類的實現的文章就介紹到這瞭,更多相關SpringBoot 統一公共返回類內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Springboot處理異常的常見方式
- SpringBoot中如何統一接口返回與全局異常處理詳解
- 如何設計一個安全的API接口詳解
- SpringBoot實現統一封裝返回前端結果集的示例代碼
- java使用枚舉封裝錯誤碼及錯誤信息詳解