Spring Boot自定义错误页面

5 篇文章 0 订阅
3 篇文章 0 订阅

 

1.Spring Boot描述

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

image.png

方法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/高

方法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.项目结构图

项目结构.png

3.显示配置后的效果

404.png

5xx.png

转载自:https://www.jianshu.com/p/37683a285ee3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值