SpringBoot返回值封装

前提:SpringBoot整合MyBatis
为了后台返回值统一格式,在util包中创建Result类将返回值封装

public class Result <T> {

    private int code;       // 状态码
    private String msg;     // 返回的信息
    private T data;         // 返回的数据

    /**
     * 成功时候的调用(有数据)
     * @param data
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(T data){
        return new Result<T>(data);
    }

    /**
     * 成功时候的调用(无数据)
     * @param <T>
     * @return
     */
    public static <T> Result<T> success(){
        return new Result<T>();
    }

    /**
     * 异常时候的调用(有msg参数)
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T> error(String msg){
        return new Result<T>(msg);
    }

    /**
     * 异常时候的调用(无msg参数)
     * @param <T>
     * @return
     */
    public static <T> Result<T> error(){
        return new Result<T>("error");
    }

    private Result(T data) {
        this.code = 200;
        this.msg = "success";
        this.data = data;
    }

    private Result() {
        this.code = 200;
        this.msg = "success";
    }

    private Result(String msg) {
        this.code = 400;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public T getData() {
        return data;
    }

}

而控制层的getAll方法的返回类型等要改为:

@GetMapping("/getAll")
public Result getAll() {
	return Result.success(service.getAll());
}

此时用Postman访问http://localhost:8080/student/getAll得到的结果如下:
请添加图片描述
当然也可以在封装一个常用异常状态参数的类Error(静态异常可以根据项目自由定义)

public class Error {
    private int code;		// 状态码
    private String msg;		// 返回的信息

    private Error(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    // 静态常用异常
    public static Error ERROR_1 = new Error(400,"异常类型一");
    public static Error ERROR_2 = new Error(500,"异常类型二");

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}

然后在Result类中添加如下方法:

/**
 * 异常时候的调用(固定参数)
 * @param error
 * @param <T>
 * @return
 */
public static <T> Result<T> error(Error error){
    return new Result<T>(error);
}

private Result(Error error) {
    if (error == null){
        return ;
    }
    this.code = error.getCode();
    this.msg = error.getMsg();
}

使用:

/**
 * 测试定义参数异常
 * @return
 */
@GetMapping("/getError")
public Result getError() {
    return Result.error(ERROR_1);
}

访问http://localhost:8080/student/getError
请添加图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以通过以下步骤实现接口返回值的加密: 1. 创建一个自定义的响应对象,用于封装加密后的返回数据。例如,可以创建一个名为`EncryptedResponse`的类,包含一个`data`字段用于存储加密后的数据。 ```java public class EncryptedResponse { private String data; public EncryptedResponse(String data) { this.data = data; } // getter and setter } ``` 2. 创建一个自定义的响应切面,在切面中对接口返回值进行加密处理。可以使用Spring AOP来实现这一步骤。 ```java @Aspect @Component public class EncryptionAspect { @Autowired private EncryptionService encryptionService; @Pointcut("execution(* com.example.controllers.*.*(..))") public void controllerMethods() {} @Around("controllerMethods()") public Object encryptResponse(ProceedingJoinPoint joinPoint) throws Throwable { // 执行目标方法 Object result = joinPoint.proceed(); // 对返回值进行加密处理 String encryptedData = encryptionService.encrypt(result.toString()); // 创建加密后的响应对象 EncryptedResponse encryptedResponse = new EncryptedResponse(encryptedData); return encryptedResponse; } } ``` 在上述代码中,`EncryptionService`是一个自定义的加密服务,用于对返回值进行加密。你可以根据具体需求选择适合的加密算法和实现方式。 3. 在Spring Boot的配置文件中启用AOP。 ```java @EnableAspectJAutoProxy @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 通过以上步骤,你可以在Spring Boot中实现接口返回值的加密处理。每次调用接口时,返回数据将会被加密后封装在`EncryptedResponse`对象中返回给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值