@ControllerAdvice注解的使用

package com.vcredit.ddcash.monitor.controller;

import com.vcredit.ddcash.monitor.model.dto.Response;
import freemarker.template.utility.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;

/**
* Created by guanshuli on 2017/1/11.
*/
@ControllerAdvice
public class GlobalExceptionHandler {
public static final String DEFAULT_ERROR_VIEW = "error";
public static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);

@ExceptionHandler(value = Throwable.class)
@ResponseBody
public Object defaultErrorHandler(Throwable e,
HttpServletRequest request) {
Response response=new Response();
e.printStackTrace();
response.setStatus("接口异常");
response.setMsg("网络异常,请稍后重试");
this.writeLog(request, e);
return response;
}

private void writeLog(HttpServletRequest request, Throwable e) {
Map map = new HashMap();
Enumeration enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String str = enumeration.nextElement().toString();
map.put(str, request.getHeader(str));
}
map.put("getRequestURI", request.getRequestURI());
logger.error("请求异常,请求头:{};", map.toString(), e);

}
}

转载于:https://www.cnblogs.com/muliu/p/6273740.html

你可能感兴趣的:(@ControllerAdvice注解的使用)