@RestControllerAdvice(basePackages = "com.paic.property.cfom")
@ConditionalOnProperty(name = "global.result.handle.config.enable", havingValue = "true")
@Order(50)
public class GlobalResultHandler implements ResponseBodyAdvice<Object> {
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
// 如果ContentType不包含JSON則添加
if(!selectedContentType.includes(MediaType.APPLICATION_JSON)){
response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
}
Class<?> returnValueType = this.getReturnValueType(body, returnType);
// 返回類型是String
if(String.class == returnValueType){
return JSON.toJSONString(DefaultJsonResult.success(body));
}
// 返回值是否是JsonResult的子類
if(JsonResult.class.isAssignableFrom(returnValueType)){
if(body != null){
return body;
}else{
return DefaultJsonResult.success(null);
}
}
return DefaultJsonResult.success(body);
}
/**
* 獲取返回值類型
* @param value 返回值
* @param returnType 請求類型
* @return Class<?>
*/
private Class<?> getReturnValueType(@Nullable Object value, MethodParameter returnType) {
// 參考 AbstractMessageConverterMethodProcessor
return (value != null ? value.getClass() : returnType.getParameterType());
}
}
springboot全局統(tǒng)一結果處理
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嫩挤,“玉大人害幅,你說我怎么就攤上這事∑裾眩” “怎么了以现?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長约啊。 經(jīng)常有香客問我邑遏,道長,這世上最難降的妖魔是什么恰矩? 我笑而不...
- 正文 為了忘掉前任记盒,我火速辦了婚禮,結果婚禮上外傅,老公的妹妹穿的比我還像新娘纪吮。我一直安慰自己蹂午,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布彬碱。 她就那樣靜靜地躺著豆胸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巷疼。 梳的紋絲不亂的頭發(fā)上晚胡,一...
- 文/蒼蘭香墨 我猛地睜開眼攀细,長吁一口氣:“原來是場噩夢啊……” “哼箫踩!你這毒婦竟也來了?” 一聲冷哼從身側響起谭贪,我...
- 正文 年R本政府宣布,位于F島的核電站师郑,受9級特大地震影響环葵,放射性物質發(fā)生泄漏。R本人自食惡果不足惜宝冕,卻給世界環(huán)境...
- 文/蒙蒙 一张遭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧地梨,春花似錦菊卷、人聲如沸缔恳。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽歉甚。三九已至,卻和暖如春扑眉,著一層夾襖步出監(jiān)牢的瞬間纸泄,已是汗流浹背。 一陣腳步聲響...