经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring » 查看文章
SpringBoot 统一公共返回类的实现
来源:jb51  时间:2022/1/18 11:29:42  对本文有异议

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

项目结构

在这里插入图片描述

具体过程如下,在response文件夹下分别建立 CustomizeResultCode 接口,枚举类ResultCode 实现CustomizeResultCode 接口和Result类:

1 配置自定义返回类接口,该接口中包含 错误状态码和错误信息

  1. public interface CustomizeResultCode {
  2. /*
  3. 获取错误码
  4. @return 错误状态码
  5. */
  6. Integer getCode();
  7. /*
  8. 获取错误信息
  9. @return 错误信息
  10. */
  11. String getMessage();
  12. }

2 配置返回实现类,注意这里是个枚举类,里面的编码仅供参考,可以自定义

  1. /**
  2. * @Description: 返回码定义
  3. * 规定:
  4. * #200表示成功
  5. * #400表示错误
  6. * #1001~1999 区间表示参数错误
  7. * #2001~2999 区间表示用户错误
  8. * #3001~3999 区间表示接口异常
  9. * #后面对什么的操作自己在这里注明就行了
  10. */
  11. public enum ResultCode implements CustomizeResultCode{
  12. /* 成功 */
  13. SUCCESS(200, "成功"),
  14. /*错误*/
  15. ERROR(400,"错误失败"),
  16.  
  17. /* 默认失败 */
  18. COMMON_FAIL(999, "失败"),
  19.  
  20. /* 参数错误:1000~1999 */
  21. PARAM_NOT_VALID(1001, "参数无效"),
  22. PARAM_IS_BLANK(1002, "参数为空"),
  23.  
  24. /* 用户错误 */
  25. USER_NOT_LOGIN(2001, "用户未登录"),
  26. USER_ACCOUNT_EXPIRED(2002, "账号已过期"),
  27. USER_CREDENTIALS_ERROR(2003, "密码错误"),
  28. /*运行时异常*/
  29. ARITHMETIC_EXCEPTION(9001,"算数异常");
  30. ;
  31. private Integer code;
  32. private String message;
  33. ResultCode(Integer code,String message){
  34. this.code=code;
  35. this.message=message;
  36. }
  37. @Override
  38. public Integer getCode() {
  39. return code;
  40. }
  41.  
  42. @Override
  43. public String getMessage() {
  44. return message;
  45. }
  46. }

3 定义具体的返回类方法

  1. @Data
  2. public class Result {
  3. @ApiModelProperty(value = "是否成功")
  4. private Boolean success;
  5. @ApiModelProperty (value= "返回码")
  6. private Integer code;
  7. @ApiModelProperty(value = "返回消息")
  8. private String message;
  9. @ApiModelProperty(value = "返回数据")
  10. private Map<String,Object> data=new HashMap<>();
  11. /*
  12. 构造方法私有化,里面的方法都为静态方法
  13. 达到保护属性的作用
  14. */
  15. private Result(){
  16.  
  17. }
  18. /*
  19. 使用链式编程
  20. 该部分在项目组中一般是项目组长写好的
  21. */
  22. public static Result ok(){
  23. Result result=new Result();
  24. result.setSuccess(true);
  25. result.setCode(ResultCode.SUCCESS.getCode());
  26. result.setMessage(ResultCode.SUCCESS.getMessage());
  27. return result;
  28. }
  29.  
  30. public static Result error(){
  31. Result result=new Result();
  32. result.setSuccess(false);
  33. result.setCode(ResultCode.ERROR.getCode());
  34. result.setMessage(ResultCode.ERROR.getMessage());
  35. return result;
  36. }
  37. /*
  38. 自定义返回成功与否
  39. */
  40. public Result success(Boolean success){
  41. this.setSuccess(success);
  42. return this;
  43. }
  44. public Result message(String message){
  45. this.setMessage(message);
  46. return this;
  47. }
  48. public Result code(Integer code){
  49. this.setCode(code);
  50. return this;
  51. }
  52. public Result data(String key,Object value){
  53. this.data.put(key,value);
  54. return this;
  55. }
  56. public Result data(Map<String,Object>map){
  57. this.setData(map);
  58. return this;
  59. }
  60. }

统一返回类使用

Controller在下面的文件中

在这里插入图片描述

  1. @RestController
  2. @EnableAutoConfiguration
  3. @RequestMapping("/system/info")
  4. @Api(value = "系统模块",tags="系统接口")
  5. public class DController {
  6. @Autowired
  7. private DService dService;
  8. @GetMapping
  9. @ApiOperation(value = "信息列表",notes = "查询所有信息")
  10. public Result findDs(){
  11.  
  12. List<Doctordict>list=dService.list();
  13. //链式编程
  14. return Result.ok().data("users",list);
  15. }
  16. }

测试结果成功

在这里插入图片描述

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号