SpringBoot系列记录(八)——封装统一返回数据格式
程序员文章站
2022-04-30 13:59:10
...
一、定义统一响应结果类
名称 | 描述 |
---|---|
code |
状态码:0成功,-1失败 |
msg | 响应信息 |
data | 返回数据 |
public class ResultReturn implements Serializable {
private static final long serialVersionUID = 5805792987639183304L;
/**
* 0成功 -1失败
*/
private String code;
private String msg;
private Object data;
省略getter,setter...
public ResultReturn(){
super();
}
public ResultReturn(String code, String msg){
this.code = code;
this.msg = msg;
}
public ResultReturn(String code, String msg, Object data){
this.code = code;
this.msg = msg;
this.data = data;
}
}
二、工具类
构建一个返回结果工具类,使得不用在每个业务方法中去new一个ResultReturn对象,代码看起来也更加简洁。
public class ResultReturnUtil {
/**
* 成功 返回默认码值
* @param msg
* @return
*/
public static ResultReturn success(String msg){
return new ResultReturn("0",msg);
}
/**
* 成功 返回自定义码值
* @param code
* @param msg
* @return
*/
public static ResultReturn success(String code, String msg){
return new ResultReturn(code,msg);
}
public static ResultReturn success(String msg, Object data){
return new ResultReturn("0",msg,data);
}
public static ResultReturn fail(String msg){
return new ResultReturn("-1",msg);
}
public static ResultReturn fail(String code, String msg){
return new ResultReturn(code,msg);
}
}
对于工具类中的静态方法根据不同的场景来定义,比如我这里定义了一个可以自定义状态码的方法。
三、通用常量信息类
对于一些增删改查的操作,它的返回信息我们可以使用字符串常量类来事先定义好,就不用每次去写了。这里举个栗子
public class Constant {
/**
* 数据插入成功返回信息
*/
public static final String ADDINFO_SUCCESS = "数据添加成功!";
/**
* 数据插入失败返回信息
*/
public static final String ADDINFO_FAIL = "数据添加失败";
}
四、使用与测试
比如说我这里需要添加一个用户 举个栗子,不要复制代码
Controller:
@Controller
@RequestMapping("/userManage")
public class UserController{
@Autowired
UserService userService;
/**
* 添加用户数据
* @param user
* @return
*/
@CustomLogNotes(module = "添加用户")
@RequestMapping("/doAddUser")
@ResponseBody
public ResultReturn doAddUser(User user) {
return userService.addUser(user);
}
}
Service:
直接看实现类 这里就用到我们的工具类了
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper;
@Override
public ResultReturn addUser(User user) {
int flag = userMapper.insert(user);
if (flag > 0){
return ResultReturnUtil.success(Constant.ADDINFO_SUCCESS);
}else{
return ResultReturnUtil.fail(Constant.ADDINFO_FAIL);
}
}
}
返回结果