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
SpringBoot返回值封装相关推荐
- SpringBoot返回类型封装
SpringBoot返回类型封装 返回类型封装的工具类 工具类的调用 总结 自我推荐 返回类型封装的工具类 //把返回值封装成工具类,方便调用 public class ResultMapUtils ...
- Yansongda\Pay 支付宝返回值封装
在使用Yansongda做支付宝支付是直接使用插件原生返回 return $alipay->app($order)->send(); 得到了app 支付包含商户的订单信息请求参数字符串, ...
- springboot 的异步任务 :无返回值 和有返回值
在想要异步执行的方法上加上@Async注解,在controller上加上@EnableAsync,即可. 注:这里的异步方法,只能在本类之外调用,在本类调用是无效的. 无返回值的异步任务 servic ...
- 【Android】12.3 在当前Activity中获取另一个Activity的返回值
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 在上一节的示例中,通过StartActivity(Intent)方法启动另一个Activity后,这两个Activ ...
- 创建线程以及怎样创建有返回值的线程
一.继承Thread类创建线程类 (1) 定义一个类并继承Thread,重写run方法,该run方法为该线程需要完成的任务,及线程的执行体. (2) 创建该类的实例对象,及为创建了线程对象. (3) ...
- C#秘密武器之多线程——参数与返回值
线程函数要么没有参数,要么只能有一个object参数,而且均没有返回值,这样就大大降低了程序的灵活性,其实我们想要的是能像普通方法一样正常使用参数和返回值!能不能实现这个需求呢?下面就介绍两种方法 一 ...
- Spring Boot配置统一格式Result返回值(一)
在Web开发中,前后端分离开发已经深入人心,这样的开发模式对于开发优雅美观的web应用非常有益.我在网上查阅了一些资料,学习了在Spring Boot开发中使用有利于前端小伙伴合作开发的统一格式返回值 ...
- SpringBoot异步任务, 以及带返回值的异步任务(@Async 不起作用的原因)
第一部分: 无返回值异步任务 当没有加入异步任务的时候,我们创建一个service ,里面的方法需要等待3秒才能完成, controller层写一个测试方法调用时间返回的接口, 直接调用, 下面是se ...
- springboot包装controller返回值
1.springboot项目统一包装返回值,通常返回结果包含code.message.data,结构如下 import lombok.AllArgsConstructor; import lombok ...
最新文章
- 任意用户密码重置(四):重置凭证未校验
- 滴滴出行2020数据分析面试题
- python变量类型函数_python中的变量和数据类型
- 每周一题 —— 3n+1问题
- 为什么我们总是喜欢选择差不多的价格
- 单片机断电后静态存储区里面还有数据吗_单片机启动流程和存储架构详解
- 【纠错记录】本地FTP服务器无法被外部连接
- laravel 自带的用户登录视图路径_Laravel实现找回密码及密码重置,详细操作
- 通过TextWatcher去观察输入框中输入的内容以及输入字符个数
- Pandas GroupBy 分组(分割-应用-组合)
- java命令行参数args_Args4J (Java 命令行参数控制开源项目) 使用指南
- 空间数据挖掘主要方法
- [zencart数据采集]第二课 火车头采集简单系统配置
- 使用 Golang 实现简易的令牌桶算法
- LU分解、矩阵求逆与解线性方程组(matlab代码)
- 【数据科学家学习小组】之统计学(第二期)第一周(20191028-20191103)-momi
- NDK - JNI官方中文资料
- 基于Python的安卓图形锁破解程序
- 学习笔记2:高精度地图
- 35岁以后不建议裸辞