<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      Fork me on GitHub

      還在使用ResponseEntity?試試自己構(gòu)建一個優(yōu)雅的響應(yīng)返回類和通用分頁結(jié)果類

      直接上代碼

      1. 通用響應(yīng)實體類

      import java.util.Objects;
      
      /**
       * <p> 響應(yīng)實體類 </p>
       *
       * @author lishaohui
       * @since 2023/9/20 19:58
       */
      public class Response<T> {
      
          /**
           * 返回結(jié)果狀態(tài)碼
           */
          private Integer code;
      
          /**
           * 返回結(jié)果狀態(tài)信息
           */
          private String message;
      
          /**
           * 返回主體數(shù)據(jù)
           */
          private T data;
      
          protected Response() {
      
          }
      
          protected Response(Integer code, String message, T data) {
              this.code = code;
              this.message = message;
              this.data = data;
          }
      
          /**
           * 構(gòu)造通用成功返回{@link Result Response}工廠方法
           *
           * @return {@link Result Response}
           */
          public static <T> Response<T> ok() {
              return Response.ok(null);
          }
      
          /**
           * 構(gòu)造通用成功返回{@link Response Response}工廠方法
           *
           * @return {@link Response Response}
           */
          public static <T> Response<T> ok(T data) {
              return Response.of(BaseResponseStatus.SUCCESS_CODE, BaseResponseStatus.SUCCESS_MESSAGE, data);
          }
      
          /**
           * 構(gòu)造通用失敗返回{@link Result Response}工廠方法
           *
           * @return {@link Result Response}
           */
          public static <T> Response<T> error() {
              return Response.error(null);
          }
      
          /**
           * 構(gòu)造通用失敗返回{@link Result Result}工廠方法
           *
           * @param message 返回消息
           * @return {@link Result Result}
           */
          public static <T> Response<T> error(String message) {
              return Response.of(BaseResponseStatus.ERROR_CODE, message);
          }
      
          /**
           * 構(gòu)造通用失敗返回{@link Result Result}工廠方法
           *
           * @param code    返回狀態(tài)碼
           * @param message 返回消息
           * @return {@link Result Result}
           */
          public static <T> Response<T> error(Integer code, String message) {
              return Response.of(code, message);
          }
      
          /**
           * 構(gòu)造{@link Response Response}工廠方法
           *
           * @param code    自定義返回碼
           * @param message 自定義返回消息
           * @return {@link Response Response}
           */
          public static <T> Response<T> of(Integer code, String message) {
              return Response.<T>builder()
                      .code(code)
                      .message(message)
                      .data(null)
                      .build();
          }
      
          /**
           * 構(gòu)造{@link Response Response}工廠方法
           *
           * @param code    自定義返回碼
           * @param message 自定義返回消息
           * @param data    返回數(shù)據(jù)
           * @return {@link Response Response}
           */
          public static <T> Response<T> of(int code, String message, T data) {
              return Response.<T>builder()
                      .code(code)
                      .message(message)
                      .data(data)
                      .build();
          }
      
          /**
           * 構(gòu)造{@link Response Response}工廠方法
           *
           * @param status 自定義返回格式
           * @param data   返回數(shù)據(jù)
           * @return {@link Response Response}
           */
          public static <T> Response<T> of(BaseResponseStatus status, T data) {
              return Response.<T>builder()
                      .code(status.getCode())
                      .message(status.getMessage())
                      .data(data)
                      .build();
          }
      
          public Response(Builder<T> tBuilder) {
              this.code = tBuilder.code;
              this.message = tBuilder.message;
              this.data = tBuilder.data;
          }
      
          public static <T> Builder<T> builder() {
              return new Builder<>();
          }
      
          public static <T> Builder<T> builder(Response<T> response) {
              Builder<T> builder = new Builder<>();
              builder.code = response.code;
              builder.message = response.message;
              builder.data = response.data;
              return builder;
          }
      
          public Integer getCode() {
              return code;
          }
      
          public void setCode(Integer code) {
              this.code = code;
          }
      
          public String getMessage() {
              return message;
          }
      
          public void setMessage(String message) {
              this.message = message;
          }
      
          public T getData() {
              return data;
          }
      
          public void setData(T data) {
              this.data = data;
          }
      
          @Override
          public boolean equals(Object o) {
              if (this == o) return true;
              if (o == null || getClass() != o.getClass()) return false;
              Response<?> response = (Response<?>) o;
              return Objects.equals(getCode(), response.getCode())
                      && Objects.equals(getMessage(), response.getMessage())
                      && Objects.equals(getData(), response.getData());
          }
      
          @Override
          public int hashCode() {
              return Objects.hash(getCode(), getMessage(), getData());
          }
      
          @Override
          public String toString() {
              return "Response{" +
                      "code=" + code +
                      ", message='" + message + '\'' +
                      ", data=" + data +
                      '}';
          }
      
          public static class Builder<T> {
              private Integer code;
              private String message;
              private T data;
      
              private Builder() {
              }
      
              public Builder<T> code(Integer code) {
                  this.code = code;
                  return this;
              }
      
              public Builder<T> message(String message) {
                  this.message = message;
                  return this;
              }
      
              public Builder<T> data(T data) {
                  this.data = data;
                  return this;
              }
      
              public Response<T> build() {
                  return new Response<>(this);
              }
      
          }
      
          /**
           * Base響應(yīng)狀態(tài)接口
           */
          public interface BaseResponseStatus {
      
              int SUCCESS_CODE = 200;
              int ERROR_CODE = 500;
      
              String SUCCESS_MESSAGE = "成功";
              String ERROR_MESSAGE = "失敗";
      
              /**
               * 獲取狀態(tài)碼
               */
              Integer getCode();
      
              /**
               * 獲取返回信息
               */
              String getMessage();
      
          }
      
          public enum ResponseStatus implements BaseResponseStatus {
      
              /**
               * 200 成功 使用約定的成功狀態(tài)碼
               */
              SUCCESS(BaseResponseStatus.SUCCESS_CODE, BaseResponseStatus.SUCCESS_MESSAGE),
      
              /**
               * 500 異常 使用約定的失敗狀態(tài)碼
               */
              ERROR(BaseResponseStatus.ERROR_CODE, BaseResponseStatus.ERROR_MESSAGE),
      
              /**
               * 參數(shù)錯誤
               */
              ILLEGAL_ARGUMENT(400, "參數(shù)錯誤"),
      
              UNAUTHORIZED(401, "未認證"),
      
              FORBIDDEN(403, "未授權(quán)"),
      
              WRONG_PASSWORD(411, "賬號或密碼錯誤"),
      
              ACCOUNT_DISABLED(412, "賬號已被禁用"),
              ;
      
              ResponseStatus(Integer code, String msg) {
                  this.code = code;
                  this.message = msg;
              }
      
              @Override
              public Integer getCode() {
                  return code;
              }
      
              @Override
              public String getMessage() {
                  return message;
              }
      
              /**
               * 返回狀態(tài)碼,{@link ResponseStatus#SUCCESS_CODE SUCCESS(200)}表示成功
               */
              private final Integer code;
      
              /**
               * 返回描述信息
               */
              private final String message;
          }
      }
      

      2. 響應(yīng)結(jié)果測試

          public Response<String> stringResponse() {
              return Response.<String>builder()
                      .code(201)
                      .message("test message")
                      .data("test data")
                      .build();
          }
      

      3.通用分頁

      import java.io.Serializable;
      import java.util.ArrayList;
      import java.util.Arrays;
      import java.util.List;
      import java.util.Objects;
      
      /**
       * <p>通用分頁返回</p>
       *
       * @author lishaohui
       * @since 2023/9/20 21:06
       */
      public class Page<T> implements Serializable {
      
          /**
           * 總條數(shù)
           */
          private long count;
      
          /**
           * 當前頁數(shù)據(jù)
           */
          private List<T> rows;
      
          private Page() {
      
          }
      
          private Page(long count, List<T> rows) {
              this.count = count;
              this.rows = rows;
          }
      
          public Page(Builder<T> builder) {
              this.count = builder.count;
              this.rows = builder.rows;
          }
      
          public static <T> Page<T> fill(long count, List<T> rows) {
              return Page.<T>builder()
                      .count(count)
                      .rows(rows)
                      .build();
          }
      
          public static <T> Page<T> empty(){
              return Page.fill(0, new ArrayList<>());
          }
      
          public static <T> Builder<T> builder(Page<T> page) {
              Builder<T> builder = new Builder<>();
              builder.count = page.count;
              builder.rows = page.rows;
              return builder;
          }
      
          public static <T> Builder<T> builder() {
              return new Builder<>();
          }
      
          public long getCount() {
              return count;
          }
      
          public void setCount(long count) {
              this.count = count;
          }
      
          public List<T> getRows() {
              return rows;
          }
      
          public void setRows(List<T> rows) {
              this.rows = rows;
          }
      
          @Override
          public boolean equals(Object o) {
              if (this == o) return true;
              if (o == null || getClass() != o.getClass()) return false;
              Page<?> page = (Page<?>) o;
              return getCount() == page.getCount() && Objects.equals(getRows(), page.getRows());
          }
      
          @Override
          public int hashCode() {
              return Objects.hash(getCount(), getRows());
          }
      
          @Override
          public String toString() {
              return "Page{" +
                      "count=" + count +
                      ", rows=" + rows +
                      '}';
          }
      
          public static class Builder<T> {
              private long count;
              private List<T> rows;
      
              private Builder() {
              }
      
              public Builder<T> count(long count) {
                  this.count = count;
                  return this;
              }
      
              public Builder<T> rows(List<T> rows) {
                  this.rows = rows;
                  return this;
              }
      
              public Page<T> build() {
                  return new Page<>(this);
              }
          }
      }
      
      
      posted @ 2023-09-20 21:24  Hui_Li  閱讀(238)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品中文字幕久久| 一区二区三区av在线观看| 国产亚洲精品久久777777| 亚洲五月天一区二区三区| 精品国产伦理国产无遮挡| 色窝窝免费一区二区三区| 国产又色又爽又黄的视频在线| 国产精品一区二区三粉嫩| 狠狠色狠狠综合久久| 亚洲精品电影院| 国产三级精品三级在线看| 国产一级片内射在线视频| 草草浮力影院| 激情综合网激情五月俺也想| 四虎永久在线精品无码视频| 强奷白丝美女在线观看| 精品视频一区二区三区不卡| 国产乱妇乱子视频在播放| 少妇人妻av毛片在线看| 亚洲黄色一级片在线观看| 亚洲无人区一区二区三区| 好屌草这里只有精品| 麻豆精品传媒一二三区| 成人3d动漫一区二区三区 | 亚洲av第一区二区三区| 国产精品中文字幕视频| 亚洲午夜精品久久久久久浪潮| 熟女亚洲综合精品伊人久久| 国产AV福利第一精品| 中文字幕在线国产精品| 日本一区二区三区在线播放| 日本亚洲一级中文字幕| 久久久久久久久久久久中文字幕| 日韩有码中文字幕一区二区 | 亚洲人妻一区二区精品| 成年午夜无码av片在线观看| 漂亮人妻被修理工侵犯| 亚洲AV日韩AV综合在线观看| 国产精品永久免费成人av| 国产成年码av片在线观看| 国产精品久久久久久久久久妞妞|