冷文学习者 - spring
type: channel
link: https://www.kevinlu98.cn/tag/spring/
items: SpringBoot自定义错误页面

SpringBoot自定义错误页面
type: item
date: 2022-01-08T15:36:08+08:00
description: SpringBoot自定义错误页面问题我们用springboot开发网站的时候难免会遇到需要自定义错误页面的场景，如403页面、404页面、500页面等，因为一般的服务器程序自带的默认错误页面确实有些丑或错误页面的风格与网站整体风格不挡，比如tomcat的错误页面解决准备错误页面比如我这里准备了三个常见的错误页面创建Controllerpackage cn.kevinlu98.cloud.freewindcloud.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; /** * Author: Mr丶冷文 * Date: 2022-01-08 15:15 * Email: kevinlu98@qq.com * Description: */ @Controller public class ErrorController { @GetMapping("/403") public String page403() { return "error/403"; } @GetMapping("/404") public String page404() { return "error/404"; } @GetMapping("/500") public String page500() { return "error/500"; } } 将WebServerFactoryCustomizer放入spring容器中我们将错误页面的路由配置到WebServerFactoryCustomizer里并将其放入spring容器package cn.kevinlu98.cloud.freewindcloud.config; import org.springframework.boot.web.server.ConfigurableWebServerFactory; import org.springframework.boot.web.server.ErrorPage; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; /** * Author: Mr丶冷文 * Date: 2022-01-08 15:09 * Email: kevinlu98@qq.com * Description: */ @Configuration public class ErrorPageConfig { @Bean public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() { return factory -> { factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"), new ErrorPage(HttpStatus.FORBIDDEN, "/403"), new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500")); }; } } 效果我们来看看效果