SpringBoot|SpringBoot 统一公共返回类的实现
目录
- 项目结构
- 统一返回类使用
项目结构
文章图片
具体过程如下,在response文件夹下分别建立 CustomizeResultCode 接口,枚举类ResultCode 实现CustomizeResultCode 接口和Result类:
1 配置自定义返回类接口,该接口中包含 错误状态码和错误信息
public interface CustomizeResultCode {/*获取错误码@return 错误状态码*/Integer getCode(); /*获取错误信息@return 错误信息*/String getMessage(); }
2 配置返回实现类,注意这里是个枚举类,里面的编码仅供参考,可以自定义
/** * @Description: 返回码定义 * 规定: * #200表示成功 * #400表示错误 * #1001~1999 区间表示参数错误 * #2001~2999 区间表示用户错误 * #3001~3999 区间表示接口异常 * #后面对什么的操作自己在这里注明就行了 */public enum ResultCode implements CustomizeResultCode{/* 成功 */SUCCESS(200, "成功"),/*错误*/ERROR(400,"错误失败"),/* 默认失败 */COMMON_FAIL(999, "失败"),/* 参数错误:1000~1999 */PARAM_NOT_VALID(1001, "参数无效"),PARAM_IS_BLANK(1002, "参数为空"),/* 用户错误 */USER_NOT_LOGIN(2001, "用户未登录"),USER_ACCOUNT_EXPIRED(2002, "账号已过期"),USER_CREDENTIALS_ERROR(2003, "密码错误"),/*运行时异常*/ARITHMETIC_EXCEPTION(9001,"算数异常"); ; private Integer code; private String message; ResultCode(Integer code,String message){this.code=code; this.message=message; }@Overridepublic Integer getCode() {return code; }@Overridepublic String getMessage() {return message; }}
3 定义具体的返回类方法
@Datapublic class Result {@ApiModelProperty(value = "https://www.it610.com/article/是否成功")private Boolean success; @ApiModelProperty (value= "https://www.it610.com/article/返回码")private Integer code; @ApiModelProperty(value = "https://www.it610.com/article/返回消息")private String message; @ApiModelProperty(value = "https://www.it610.com/article/返回数据")private Map data=https://www.it610.com/article/new HashMap<>(); /*构造方法私有化,里面的方法都为静态方法达到保护属性的作用*/private Result(){}/*使用链式编程该部分在项目组中一般是项目组长写好的*/public static Result ok(){Result result=new Result(); result.setSuccess(true); result.setCode(ResultCode.SUCCESS.getCode()); result.setMessage(ResultCode.SUCCESS.getMessage()); return result; }public static Result error(){Result result=new Result(); result.setSuccess(false); result.setCode(ResultCode.ERROR.getCode()); result.setMessage(ResultCode.ERROR.getMessage()); return result; }/*自定义返回成功与否*/public Result success(Boolean success){this.setSuccess(success); return this; }public Result message(String message){this.setMessage(message); return this; }public Result code(Integer code){this.setCode(code); return this; }public Result data(String key,Object value){this.data.put(key,value); return this; }public Result data(Mapmap){this.setData(map); return this; }}
统一返回类使用 Controller在下面的文件中
文章图片
@RestController@EnableAutoConfiguration@RequestMapping("/system/info")@Api(value = "https://www.it610.com/article/系统模块",tags="系统接口")public class DController {@Autowiredprivate DService dService; @GetMapping@ApiOperation(value = "https://www.it610.com/article/信息列表",notes = "查询所有信息")public Result findDs(){Listlist=dService.list(); //链式编程return Result.ok().data("users",list); } }
测试结果成功
文章图片
到此这篇关于SpringBoot 统一公共返回类的实现的文章就介绍到这了,更多相关SpringBoot 统一公共返回类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 关于springboot的接口返回值统一标准格式
- SpringBoot application.properties配置参数详情
- Springboot基于Redisson实现Redis分布式可重入锁源码解析
- SpringBoot整合MybatisPlus基本的增删改查,保姆级教程
- 学习笔记|SpringBoot05(自动配置原理)
- Springboot2-application.properties文件中文注释都是unicode编码
- @SpringBootApplication的说明
- Debug - SpringBoot - Error starting ApplicationContext. To display the auto-configuration report re-
- springboot配置文件 application.yml注意事项(Failed to load property source from location 'classpath:/appl
- SpringBoot无法访问webapp目录下的文件