本文记录下如何在工程中,配置后台的统一公共返回类,这样做目的是为了统一返回信息,方便项目进行管理。使用技术: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<String,Object> 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(Map<String,Object>map){
- 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(){
-
- List<Doctordict>list=dService.list();
- //链式编程
- return Result.ok().data("users",list);
- }
- }
测试结果成功

到此这篇关于SpringBoot 统一公共返回类的实现的文章就介绍到这了,更多相关SpringBoot 统一公共返回类内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!