SwiftWeb一键配置Web项目

Commit 121b395

Preview

Give feedback

poboll

poboll

committed

30 minutes ago

feat: Refactor error handling module with strategy pattern for customizable team-specific error standards

  • Introduced the interface to enable custom error enumeration implementations.
  • Refactored and to enhance extensibility.
  • Optimized methods to adapt to the new error handling structure.
  • Updated the README with examples and guidelines for defining and using custom error codes.
    main
    1 parent
    4f4f6d5
    commit
    121b395
    File tree
    Filter files...
    README.md
    README_CN.md
    pom.xml
    src/main/java/com/caiths/swiftweb
    common
    BaseResponse.java
    Error.java
    ErrorCode.java
    ResultUtils.java
    exception
    BusinessException.java
    GlobalExceptionHandler.java
    9 files changed
    +185
    -26
    lines changed
    Search within code

‎README.md

+38

Original file line number Diff line number Diff line change

@@ -69,6 +69,44 @@ spring:

  1. Refresh the dependencies.

Custom Error Codes 👌

  • By implementing the Error interface, you can define your own team's error handling specifications!
    Example:

    java 复制代码
      public enum ErrorCode implements Error {   
          /**
           * 状态码
           */
          private final int code;
      
          /**
           * 错误信息
           */
          private final String message;
          
          /**
           * 成功
           */
          SUCCESS(0, "ok"),
          
          /**
           * 请求参数错误
           */
          PARAMS_ERROR(40000, "请求参数错误");
          
          @Override
          public int getCode() {
              return code;
          }
          
          @Override
          public String getMessage() {
              return message;
          }
      }

Why Choose SwiftWeb? 😎

SwiftWeb simplifies the web development process compared to traditional methods by integrating essential features such as API documentation, error code management, and exception handling right out of the box.

‎README_CN.md

+37

Original file line number Diff line number Diff line change

@@ -69,6 +69,43 @@

  1. 刷新依赖

自定义错误码👌

  • 通过实现Error接口即的可定义属于自己的团队的错误处理规范!!!
    示例:
java 复制代码
 public enum ErrorCode implements Error {   
     /**
      * 状态码
      */
     private final int code;
 
     /**
      * 错误信息
      */
     private final String message;
     
     /**
      * 成功
      */
     SUCCESS(0, "ok"),
     
     /**
      * 请求参数错误
      */
     PARAMS_ERROR(40000, "请求参数错误");
     
     @Override
     public int getCode() {
         return code;
     }
     
     @Override
     public String getMessage() {
         return message;
     }
 }

我们的优势😎

相比传统的创建Web项目,无需整合接口文档,拥有丰富的错误码,灵活的全局异常处理器。

‎pom.xml

+11

Original file line number Diff line number Diff line change

@@ -17,6 +17,11 @@

Build web applications quickly with SwiftWeb.

https://github.com/poboll/swift-web

复制代码
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 许可证部分,使用 MIT License -->
<licenses>
    <license>

@@ -63,6 +68,12 @@

org.projectlombok

lombok

true

org.springframework.boot

spring-boot-starter-test

test

‎src/main/java/com/caiths/swiftweb/common/BaseResponse.java

+6

-3

Original file line number Diff line number Diff line change

@@ -9,10 +9,14 @@

*

  • @param

  • @author poboll

  • @version: 1.0

  • @description: 基反应

    */

    @Data

    public class BaseResponse implements Serializable {

    private static final long serialVersionUID = 4887078045405290846L;

    private int code;

    private T data;

    @@ -29,7 +33,6 @@ public BaseResponse(int code, T data) {

    this(code, data, "");

    }

    public BaseResponse(ErrorCode errorCode) {

    this(errorCode.getCode(), null, errorCode.getMessage());

    public BaseResponse(Error errorCode) { this(errorCode.getCode(), null, errorCode.getMessage());

    }

    }

    }

    ‎src/main/java/com/caiths/swiftweb/common/Error.java

    +27

    Original file line number Diff line number Diff line change

    @@ -0,0 +1,27 @@

    package com.caiths.swiftweb.common;

    /**

  • 错误返回接口

  • @author poboll

  • @version: 1.0

  • @description: 错误返回接口, 自定义错误枚举实现该接口即可
    /
    public interface Error {
    /
    *

    • 错误代码
    • @return int
      /
      int getCode();
      /
      *
    • 错误描述
    • @return {@link String}
      /
      String getMessage();
      /
      *
    • 系统错误 ()
      */
      int SYSTEM_ERROR = 50000;
      }
      ‎src/main/java/com/caiths/swiftweb/common/ErrorCode.java
      +30
      -6
      Original file line number Diff line number Diff line change
      @@ -1,19 +1,43 @@
      package com.caiths.swiftweb.common;

/**

  • 错误码

  • 同一返回错误码

  • @author poboll

    */

    public enum ErrorCode {

    public enum ErrorCode implements Error {

    /**

    • 成功
      /
      SUCCESS(0, "ok"),
      /
      *
    • 请求参数错误
      /
      PARAMS_ERROR(40000, "请求参数错误"),
      /
      *
    • 未登录
      /
      NOT_LOGIN_ERROR(40100, "未登录"),
      /
      *
    • 无权限
      /
      NO_AUTH_ERROR(40101, "无权限"),
      /
      *
    • 请求数据不存在
      /
      NOT_FOUND_ERROR(40400, "请求数据不存在"),
      /
      *
    • 禁止访问
      /
      FORBIDDEN_ERROR(40300, "禁止访问"),
      /
      *
    • 系统错误
      /
      SYSTEM_ERROR(50000, "系统内部异常"),
      /
      *
    • 操作错误
      */
      OPERATION_ERROR(50001, "操作失败");

    /**

    @@ -22,7 +46,7 @@ public enum ErrorCode {

    private final int code;

    /**

    • 信息
    • 错误信息
      */
      private final String message;

@@ -31,12 +55,12 @@ public enum ErrorCode {

this.message = message;

}

复制代码
@Override
public int getCode() {
    return code;
}
@Override
public String getMessage() {
    return message;
}

}

}

‎src/main/java/com/caiths/swiftweb/common/ResultUtils.java

+15

-12

Original file line number Diff line number Diff line change

@@ -10,42 +10,45 @@ public class ResultUtils {

/**

* 成功

*

* @param data

* @param

* @return

* @param data 数据

* @return {@link BaseResponse}<{@link T}>

*/

public static BaseResponse success(T data) {

return new BaseResponse<>(0, data, "ok");

}

复制代码
/**
 * 错误
 * 失败
 *
 * @param errorCode
 * @return
 * @param errorCode 错误代码
 * @return {@link BaseResponse}
 */
public static BaseResponse error(ErrorCode errorCode) {
public static BaseResponse error(Error errorCode) {
    return new BaseResponse<>(errorCode);
}

/**
 * 错误
 * 失败
 *
 * @param code
 * @param message
 * @return
 * @param code    代码
 * @param message 消息
 * @return {@link BaseResponse}
 */
public static BaseResponse error(int code, String message) {
    return new BaseResponse(code, null, message);
}

/**
 * 错误
 * 失败
 *
 * @param errorCode
 * @return
 * @param errorCode 错误代码
 * @param message   消息
 * @return {@link BaseResponse}
 */
public static BaseResponse error(ErrorCode errorCode, String message) {
public static BaseResponse error(Error errorCode, String message) {
    return new BaseResponse(errorCode.getCode(), null, message);
}

}

‎src/main/java/com/caiths/swiftweb/exception/BusinessException.java

+8

-4

Original file line number Diff line number Diff line change

@@ -1,7 +1,7 @@

package com.caiths.swiftweb.exception;

import com.caiths.swiftweb.common.ErrorCode;

import com.caiths.swiftweb.common.Error;

/**

  • 自定义异常类

    @@ -10,24 +10,28 @@

    */

    public class BusinessException extends RuntimeException {

    private static final long serialVersionUID = -2970393916478025106L;

    /**

    • 错误码
      */
      private final int code;

    public BusinessException(int code, String message) {

    super(message);

    this.code = code;

    }

    public BusinessException(ErrorCode errorCode) {

    public BusinessException(Error errorCode) {

    super(errorCode.getMessage());

    this.code = errorCode.getCode();

    }

    public BusinessException(ErrorCode errorCode, String message) {

    public BusinessException(Error errorCode, String message) {

    super(message);

    this.code = errorCode.getCode();

    }

    public int getCode() {

    return code;

    }

    }

    }

    ‎src/main/java/com/caiths/swiftweb/exception/GlobalExceptionHandler.java

    +13

    -1

    Original file line number Diff line number Diff line change

    @@ -16,15 +16,27 @@

    @Slf4j

    public class GlobalExceptionHandler {

    /**

    • 业务异常处理程序
    • @param e e
    • @return {@link BaseResponse}<{@link ?}>
      */
      @ExceptionHandler(BusinessException.class)
      public BaseResponse<?> businessExceptionHandler(BusinessException e) {
      log.error("businessException: " + e.getMessage(), e);
      return ResultUtils.error(e.getCode(), e.getMessage());
      }

    /**

    • 运行时异常处理程序
    • @param e e
    • @return {@link BaseResponse}<{@link ?}>
      */
      @ExceptionHandler(RuntimeException.class)
      public BaseResponse<?> runtimeExceptionHandler(RuntimeException e) {
      log.error("runtimeException", e);
      return ResultUtils.error(ErrorCode.SYSTEM_ERROR, e.getMessage());
      }
      }
      }
相关推荐
Mintopia3 分钟前
🧠 一文吃透 Next.js 中的 JWT vs Session:底层原理+幽默拆解指南
前端·javascript·全栈
葛小白14 分钟前
Winform控件:Combobox
前端·ui·c#·combobox
政采云技术4 分钟前
前端设计模式详解
前端·设计模式
前端开发爱好者7 分钟前
字节出手!「Vue Native」真的要来了!
前端·javascript·vue.js
前端开发爱好者11 分钟前
国产 Canvas 引擎!神器!
前端·javascript·vue.js
Canace18 分钟前
浏览器渲染原理概述
前端·性能优化·浏览器
caimo21 分钟前
Java无法访问网址出现Timeout但是浏览器和Postman可以
java·开发语言·postman
啃火龙果的兔子25 分钟前
前端八股文性能调优篇
前端·前端框架
JarvanMo29 分钟前
停止与 Compose 导航作斗争(这 5 个技巧将改变一切)
前端
Deamon Tree30 分钟前
ElasticSearch架构和写入、更新、删除、查询的底层逻辑
java·大数据·elasticsearch·架构