@ControllerAdvice注解的使用
Posted 牧野流冰87
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@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<String, String> map = new HashMap<String, String>();
Enumeration<String> 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);
}
}
以上是关于@ControllerAdvice注解的使用的主要内容,如果未能解决你的问题,请参考以下文章
06SpringBoot中 @ControllerAdvice注解(全局异常处理)与@ModelAttribute的使用
springboot 使用@ControllerAdvice注解全局处理系统异常
SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)