簡(jiǎn)要描述:
- 跟前端約定的響應(yīng)對(duì)象格式類似于:{"respCode":"0000","respMsg":"xxxx",respData:{業(yè)務(wù)對(duì)象}},對(duì)于統(tǒng)一響應(yīng)的處理方案有以下幾種,可以根據(jù)情況適當(dāng)選擇
example1:
所有返回對(duì)象都繼承統(tǒng)一BaseResponse,父類中定義code,msg
此方案限制性比較強(qiáng)
example2:
統(tǒng)一一個(gè)工具類,所有controller返回值統(tǒng)一范型格式,最終通過工具類方法或抽象方法返回,
此方式代碼過于模版化
public JsonResp<RepaymentListDetailResponse> getRepaymentDetail(@Param OrderNoRequest request){
return getSuccessResponse(resp);
}
example3:
自定義ResponseBodyService,統(tǒng)一處理返回對(duì)象,業(yè)務(wù)代碼正常返回普通pojo
@ControllerAdvice("com.ly.fn.biz.ins.miniapp")
@Slf4j
@Component
public class ResponseBodyAdvice
implements org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice<Object> {
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
return AbstractJackson2HttpMessageConverter.class.isAssignableFrom(converterType);
}
@SuppressWarnings("all")
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
return getSuccessResponse(body);
}