SpringBoot 统一公共返回类的实现

网友投稿 533 2022-11-07

SpringBoot 统一公共返回类的实现

SpringBoot 统一公共返回类的实现

目录项目结构统一返回类使用

本文记录下如何在工程中,配置后台的统一公共返回类,这样做目的是wHbpn为了统一返回信息,方便项目进行管理。使用技术:SpringBoot+Swagger+Lombok

项目结构

具体过程如下,在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;

}

@Override

public Integer getCode() {

return code;

}

@Override

public String getMessage() {

return message;

}

}

3 定义具体的返回类方法

@Data

public class Result {

@ApiModelProperty(value = "是否成功")

private Boolean success;

@ApiModelProperty (value= "返回码")

private Integer code;

@ApiModelProperty(value = "返回消息")

private String message;

@ApiModelProperty(value = "返回数据")

private Map data=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 = "系统模块",tags="系统接口")

public class DController {

@Autowired

private DService dService;

@GetMapping

@ApiOperation(value = "信息列表",notes = "查询所有信息")

public Result findDs(){

Listlist=dService.list();

//链式编程

return Result.ok().data("users",list);

}

}

测试结果成功

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:qt加载字体
下一篇:前端编码规范
相关文章

 发表评论

暂时没有评论,来抢沙发吧~