作用
ResultUtils类的作用主要是通过实现包装的功能来更好的完成Controllor层对输出进行控制的功能。同时也可以把公用的方法封装起来有利于代买的优化。
功能
在Controllor层对输出的结果进行包装,使得输出的结果按照一定的规则,格式进行,这样,后端将可以给前端反馈一个固定格式的内容,更有利于前端对后端的信息进行接收和处理。
ResultUtils类的内容
代码
@Slf4j
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ResultUtils {
private boolean success;
private String message;
private Object data;
public static ResultUtils result(boolean success , String message , Object data){
return new ResultUtils(success , message , data);
}
public static ResultUtils success(Object data){
return new ResultUtils(true, MessageMeta.infoAbove.getMsg(), data);
}
public static ResultUtils error(String message){
return new ResultUtils(false, message,null);
}
public static ResultUtils success(String message){
return new ResultUtils(true , message ,null);
}
}
属性
一般是
boolean 型 反馈的运行状态情况(成功,失败)
String 型 反馈的信息
Object 型 反馈的数据
方法(体现了封装的思想)
上述代码的方法同时也体现了方法重构的特点,根据你要传输的参数决定了你是用的方法,使用这种发放可以大大优化在Controllor层的代码。
包装(在Controllor层)
@PostMapping("/tradeSend")
public ResultUtils tradeSend(MoneySend moneySend){
String result ="";
int num = moneySend.getNum();
ResultUtils resultUtils ;
try {
if (num < 1){
throw new BusinessException(MessageMeta.ErrorNum);
}
if (moneySend.getMoney().compareTo(new BigDecimal(0)) < 1){
throw new BusinessException(MessageMeta.ErrorMoney);
}
resultUtils = ResultUtils.success(sendTransactionService.sendMoney(moneySend));
}
catch (BusinessException e){
resultUtils = ResultUtils.error(e.getMessage());
}
return resultUtils;
}
根据你程序运行的情况以及你想返回给前端的结果,直接调用ResultUtils类中的方法来给ResultUtils的属性赋值,并把ResultUtils类进行返回前端,完成我们想要的结果