02.response
控制器中需要对List 返回的结果进行一个处理,才能与前端进行合理的绑定
CustomizeResultCode
package com.zhy.response;
public interface CustomizeResultCode {
/**
* 获取错误状态码
* @return 错误状态码
*/
Integer getCode();
/**
* 获取错误信息
* @return 错误信息
*/
String getMessage();
}
ResultCode
package com.zhy.response;
/**
* @Author: zhy
* @Description: 返回码定义
*/
public enum ResultCode implements CustomizeResultCode {
//4.定义方法,枚举的形式
/**
* 20000:"成功"
*/
SUCCESS(20000, "成功"),
/**
* 20001:"失败"
*/
ERROR(20001, "失败");
//2.定义属性
private Integer code;
private String message;
//3.构造方法
ResultCode(Integer code, String message) {
this.code = code;
this.message = message;
}
//1.添加对应接口的方法
@Override
public Integer getCode() {
return code;
}
//1.添加对应接口的方法
@Override
public String getMessage() {
return message;
}
}
注解无法使用,将xinguan-base-web的pom的dependencies内容放在xinguan-base-common中
然后让xinguan-base-web得到xinguan-base-common内容
xinguan-base-web的pom.xml
<dependencies>
<dependency>
<groupId>com.zhy</groupId>
<artifactId>xinguan-base-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
Result
package com.zhy.response;
/**
* 公共返回结果
*/
@Data
public class Result {
//1.出入的参数对象
@ApiModelProperty(value = "是否成功")
private Boolean success;
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private Map<String,Object> data = new HashMap<>();
//2.构造方法私有化,里面的方法都是静态方法
//达到保护属性的作用
private Result(){
}
//3.这里是使用链式编程
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;
}
//4.自定义返回成功与否
public Result success(Boolean success){
this.setSuccess(success);
return this;
}
//4.自定义返回消息结果
public Result message(String message){
this.setMessage(message);
return this;
}
//4.自定义返回(状态码)结果
public Result code(Integer code){
this.setCode(code);
return this;
}
//4.自定义返回键值对,返回数据库数据
//Map.put () 方法将获取 Map 集合的所有键名
public Result data(String key,Object value){
this.data.put(key,value);
return this;
}
//set方法设置key所对应的键值,然后返回整个Map结构
public Result data(Map<String,Object> map){
this.setData(map);
return this;
}
}
UserController
package com.zhy.system.controller;
/**
* 用户表 前端控制器
* @author zhy
*/
@RestController
@RequestMapping("/system/user")
@Api(value = "用户管理")
public class UserController {
@Autowired
private UserService userService;
// @RequestMapping("/findUsers") //做查询权限还是要@RequestMapping
@GetMapping //查询所有
@ApiOperation(value = "查询所有的用户信息",notes = "")
/*
* 0101编写的遍历
* public List<User> findUsers(){
* List<User> list = userService.list();
* return list;
* }
*/
/**
* 0102编写的遍历
* 需求修改:控制器中需要对List<User> 返回的结果进行一个处理,才能与前端进行合理的绑定
* 编写思路:使用链式编程的方法
*/
public Result findUsers(){
List<User> list = userService.list();
return Result.ok().data("users",list);
}
}
本文介绍如何在Spring Boot应用中,通过定制ResultCode和Result类,使用链式编程的方式处理Controller返回的List<User>,以便于前端高效绑定。重点讲解了自定义错误状态码和信息,以及如何组织返回结果数据结构。
1081

被折叠的 条评论
为什么被折叠?



