首页 > 其他分享 >Springboot 统一返回接口

Springboot 统一返回接口

时间:2024-09-11 14:28:26浏览次数:11  
标签:返回 Springboot 接口 CheckException result CommonResponse import message public

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommonResponse<T> {

    private T data;
    private String message;
    private int code;

    public static <T> CommonResponse<T> success(T data) {
        return new CommonResponse<>(data, "", 0);
    }

    public static <T> CommonResponse<T> fail(String message) {
        return new CommonResponse<>(null, message, -1);
    }

}

 

public class CheckException extends RuntimeException {

    public CheckException() {
    }

    public CheckException(String message) {
        super(message);
    }

    public CheckException(String message, Throwable cause) {
        super(message, cause);
    }

    public CheckException(Throwable cause) {
        super(cause);
    }

    public CheckException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

 

import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Slf4j
@Aspect
@Component
public class ControllerAop {

    @Resource
    PerformanceService performanceService;

    @Around("execution(public xxxxxxx.CommonResponse *(..))")
    public Object handlerControllerMethod(ProceedingJoinPoint pjp) {
        CommonResponse<?> result;
        try {
            result = (CommonResponse<?>) pjp.proceed();
        } catch (Throwable e) {
            result = handleException(pjp, e);
        }
        return result;
    }

    private CommonResponse<?> handleException(ProceedingJoinPoint pjp, Throwable e) {
        CommonResponse<?> result;
        if (e instanceof CheckException) {
            result = CommonResponse.fail(e.getMessage());
        } else {
            log.error("{} error happened ", pjp.getSignature(), e);
            result = CommonResponse.fail("发生未知异常");
        }
        return result;
    }


}

 

标签:返回,Springboot,接口,CheckException,result,CommonResponse,import,message,public
From: https://www.cnblogs.com/namedlxd/p/18408157

相关文章

  • Springboot LocalDateTime 格式化
    importcom.fasterxml.jackson.databind.ser.std.ToStringSerializer;importcom.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;importcom.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;importcom.fasterxml.jackson.datatype......
  • Springboot枚举自定义序列化
    packagexxxxxxxxxxxxx;importcom.fasterxml.jackson.core.JsonGenerator;importcom.fasterxml.jackson.databind.JsonSerializer;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.SerializerProvider;importcom.fasterx......
  • 【JAVA开源】基于Vue和SpringBoot员工绩效考核系统
    本文项目编号T021,文末自助获取源码\color{red}{T021,文末自助获取源码}......
  • 【JAVA开源】基于Vue和SpringBoot大学生入学审核系统
    本文项目编号T022,文末自助获取源码\color{red}{T022,文末自助获取源码}......
  • 【JAVA开源】基于Vue和SpringBoot房屋租赁系统
    本文项目编号T020,文末自助获取源码\color{red}{T020,文末自助获取源码}......
  • 摄影分享|基于Springboot的摄影分享网站设计与实现(源码+数据库+文档)
    摄影分享源码|基于SpingBoot+vue的摄影分享网站|摄影分享网站源码影分享网站源码:摄影分享网站能够高效管理,使信息管理方法更为科学和规范化,摄影分享网站应用Java语言表达开展代码编写,摄影分享网站规范化管理信息具备安全性强、工作效率高、内存空间大、成本费用低等特点。它能......
  • 基于Springboot的养老院管理系统设计与实现毕业设计-附源码
    养老院|养老院管理系统源码|养老院管理系统设计与实现|基于Springboot的养老院管理系统养老院管理系统源码:计算机上安装养老院管理系统软件来发挥其高效地信息处理的作用,养老院管理系统的有效运用可以帮助管理人员准确快速地处理信息,养老院管理系统在对开发工具的选择上也很慎......
  • [毕设作品]SpringBoot疫苗在线预约系统
    文章目录前言技术栈功能介绍实现页面截图文章参考我的优势我的个人网站代码参考数据库参考源码获取前言❤️博主简介:全网累计客户1000+,培训机构讲师、全栈开发工程师、知乎/小红书优秀作者、腾讯云/阿里云VIP客户、专注Java、小程序、安卓领域和毕业项目开发❤️⭐️文......
  • 基于SpringBoot的医院管理系统+LW示例参考
    系列文章目录1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例4.基于SSM的高校实验室管理系统+LW参考示例5.基于SpringBoot的二手数码回收系统+原生微信小......
  • 基于SpringBoot的校园跑腿系统+LW参考示例
    系列文章目录1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例4.基于SSM的高校实验室管理系统+LW参考示例5.基于SpringBoot的二手数码回收系统+原生微信小......