Spring Boot自定义错误页面

2018 年 5 月 25 日 0 条评论 2.26k 次阅读 0 人点赞

1.Spring Boot描述

错误总是会发生的,那些在生产环境里最健壮的应用程序偶尔也会遇到麻烦。虽然减小用户遇到错误的概率很重要,但让应用程序展现一个好的错误页面也同样重要。Spring Boot自动配置的默认错误处理器会查找名为error的视图,如果找不到就用默认的白标错误视图,如下图所示。因此,最简单的方法就是创建一个自定义视图,让解析出的视图名为error。

 

方法1:实现ErrorController接口

 

/**
* 方法1:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController
* @author cjj
*
*/
@Controller
@RequestMapping("/error")
public class BaseErrorPage implements ErrorController {
 
    Logger logger = LoggerFactory.getLogger(BaseErrorPage.class);
 
    @Override
    public String getErrorPath() {
        logger.info("进入自定义错误页面");
        return "error/error";
    }
 
    @RequestMapping
    public String error() {
        return getErrorPath();
    }

}

方法2:添加自定义的错误页面

在resources/public/error添加404.html页面
在templates/error/下定义5xx.ftl

 /**
     * 方法2:添加自定义的错误页面
     * @return
     */
    @RequestMapping("error")
    public String error() {
        throw new RuntimeException("测试异常");
    }
  //注:templates/error/ 这个的优先级比较 resources/public/error/高

[/PHP]

方法3:使用注解@ControllerAdvice


@ControllerAdvice
public class BizException {
    private static final Logger logger = LoggerFactory.getLogger(BizException.class);
 
    /**
     * 运行时异常
     * @param exception
     * @return
     */
    @ExceptionHandler({ RuntimeException.class })
    @ResponseStatus(HttpStatus.OK)
    public ModelAndView processException(RuntimeException exception) {
        logger.info("自定义异常处理-RuntimeException");
        ModelAndView m = new ModelAndView();
        m.addObject("exception", exception.getMessage());
        m.setViewName("error/500");
        return m;
 
    }
 
    /**
     * Excepiton异常
     * @param exception
     * @return
     */
    @ExceptionHandler({ Exception.class })
    @ResponseStatus(HttpStatus.OK)
    public ModelAndView processException(Exception exception) {
        logger.info("自定义异常处理-Exception");
        ModelAndView m = new ModelAndView();
        m.addObject("exception", exception.getMessage());
        m.setViewName("error/500");
        return m;
 
    }
}

2.项目结构图

3.显示配置后的效果

雷雷

这个人太懒什么东西都没留下

文章评论(0)

(Spamcheck Enabled)