定义全局返回resultpublic class Result { /** * 状态响应码 */ private int code; /** * 响应结果 成功/失败 */ private boolean success; /** * 响应信息 */ private String message; /** * 响应数据 */ @JsonInclude(JsonInclude.Include.NON_NULL) private Object data; /** * 数据总数 */ @JsonInclude(JsonInclude.Include.NON_NULL) private Long totalCount; public Result setCode(ResultCode resultCode) { this.code = resultCode.code(); return this; } public int getCode() { return code; } public boolean isSuccess() { return success; } public Result setSuccess(boolean success) { this.success = success; return this; } public String getMessage() { return message; } public Result setMessage(String message) { this.message = message; return this; } public Object getData() { return data; } public Result setData(Object data) { this.data = data; return this; } public Long getTotalCount() { return totalCount;} public Result setTotalCount(Long totalCount) { this.totalCount = totalCount; return this; }}定义全局resultCodepublic enum ResultCode { SUCCESS(200),//成功 FAIL(400),//失败 UNAUTHORIZED(401),//未认证(签名错误) 未登录 NOT_FOUND(404),//接口不存在 INTERNAL_SERVER_ERROR(500);//服务器内部错误 private final int code; ResultCode(int code) { this.code = code; } public int code() { return code; }}定义返回工具类@Slf4jpublic class ReturnUtils { private static final String DEFAULT_SUCCESS_MESSAGE = "SUCCESS"; public static Result success() { return new Result().setCode(ResultCode.SUCCESS) .setSuccess(true) .setMessage(DEFAULT_SUCCESS_MESSAGE); } public static Result success(String msg) { return new Result().setCode(ResultCode.SUCCESS) .setSuccess(true) .setMessage(msg); } public static Result success(String msg, Object data, long totalCount) { return new Result().setCode(ResultCode.SUCCESS) .setMessage(msg) .setData(data) .setSuccess(true) .setTotalCount(totalCount); } public static Result fail(String msg) { log.error(msg); return new Result().setCode(ResultCode.FAIL) .setSuccess(false) .setMessage(msg); } public static Result fail(ResultCode code, String msg) { log.error(msg); return new Result().setCode(code) .setSuccess(false) .setMessage(msg); }}定义全局异常处理类@Slf4j@RestControllerAdvicepublic class ExceptionAdvice { @ExceptionHandler(Exception.class) public Result exceptionHandler(HttpServletResponse resp, Exception e) { log.error(e.getMessage()); return ReturnUtils.fail(ResultCode.INTERNAL_SERVER_ERROR, e.getMessage()); }}测试@RequestMapping("test-exception") public void testException() { try { int i = 1 / 0; } catch (Exception e) { throw new RuntimeException("服务器发生错误,请联系管理员"); } }结果{ "code":500, "success":false, "message":"服务器发生错误,请联系管理员"}