作用
ResultUtils類的作用主要是通過實現(xiàn)包裝的功能來更好的完成Controllor層對輸出進(jìn)行控制的功能杨何。同時也可以把公用的方法封裝起來有利于代買的優(yōu)化必尼。
功能
在Controllor層對輸出的結(jié)果進(jìn)行包裝呕屎,使得輸出的結(jié)果按照一定的規(guī)則镰禾,格式進(jìn)行象缀,這樣媒佣,后端將可以給前端反饋一個固定格式的內(nèi)容跪削,更有利于前端對后端的信息進(jìn)行接收和處理。
ResultUtils類的內(nèi)容
代碼
@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 型 反饋的運(yùn)行狀態(tài)情況(成功迂求,失斈胙巍)
String 型 反饋的信息
Object 型 反饋的數(shù)據(jù)
方法(體現(xiàn)了封裝的思想)
上述代碼的方法同時也體現(xiàn)了方法重構(gòu)的特點,根據(jù)你要傳輸?shù)膮?shù)決定了你是用的方法揩局,使用這種發(fā)放可以大大優(yōu)化在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;
}
根據(jù)你程序運(yùn)行的情況以及你想返回給前端的結(jié)果,直接調(diào)用ResultUtils類中的方法來給ResultUtils的屬性賦值凌盯,并把ResultUtils類進(jìn)行返回前端付枫,完成我們想要的結(jié)果