spring boot 实现全局404页面「建议收藏」

spring boot 实现全局404页面「建议收藏」springBoot2.0版本以下importorg.springframework.boot.autoconfigure.web.ErrorController;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

springBoot2.0版本以下

import org.springframework.boot.autoconfigure.web.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
public class MainsiteErrorController implements ErrorController {
 
	private static final String ERROR_PATH = "/error";
 
	@RequestMapping(value = ERROR_PATH)
	public String handleError() {
		return "404";
	}
 
	@Override
	public String getErrorPath() {
		// TODO Auto-generated method stub
		return ERROR_PATH;
	}
 
}

SpringBoot2.0版本以上

注意:

  1. 404.html一定要建在template/static下面,否则无效。
  2. new ErrorPage可以重定向具体的html也可以重定向请求地址,如/404,那就需要添加/404的Controller

第一种写法:实现ErrorPageRegistrar

@Configuration
public class ErrorConfigurar implements ErrorPageRegistrar {
 
    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        ErrorPage[] errorPages = new ErrorPage[2];
        errorPages[0] = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
        errorPages[1] = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
 
        registry.addErrorPages(errorPages);
    }
}

第二种写法:SpringBoot2.0之前的写法

@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
    return new EmbeddedServletContainerCustomizer() {
        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND, "404.html");
            container.addErrorPages(errorPage404);
        }
    };
}

第三种:SpringBoot2.0之后的写法

@Configuration
public class ErrorPageConfig {
    /**
     * SpringBoot2.0以上版本WebServerFactoryCustomizer代替之前版本的EmbeddedWebServerFactoryCustomizerAutoConfiguration
     *
     * @return
     */
 
    //@Bean必须加上
    @Bean
    public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
//        //第一种:java7 常规写法
//        return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
//            @Override
//            public void customize(ConfigurableWebServerFactory factory) {
//                ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
//                factory.addErrorPages(errorPage404);
//            }
//        };
        //第二种写法:java8 lambda写法
        return (factory -> {
            ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
            factory.addErrorPages(errorPage404);
        });
    }
 
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164566.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins安装_jenkins sonar

    Jenkins安装_jenkins sonar前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月31日
    6
  • 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑本篇文章中,我们将一起学习OpenCV中边缘检测的各种算子和滤波器——Canny算子,Sobel算子,Laplace算子以及Scharr滤波器。文章中包含了五个浅墨为大家准备的详细注释的博文配套源代码。在介绍四块知识点的时候分别一个,以及最后的综合示例中的一个。依然是是放出一些程序运行截图吧:效果图看完,我们来唠唠嗑。首先,需要说明的是,浅墨这篇文章最后的示例代码是采用两周前刚刚发布的2.4.9来书写的。里面的lib都已经改成了2.4.9版本的。如果大家需要运行的话,要么配置好2.4.9.要么把浅墨

    2022年5月30日
    33
  • Android ORM 框架之 greenDAO

    Android ORM 框架之 greenDAO

    2021年9月30日
    43
  • input file 只读实现

    input file 只读实现//禁止粘贴,禁止直接写路径  

    2022年7月25日
    13
  • java.lang.NoSuchMethodException异常「建议收藏」

    java.lang.NoSuchMethodException异常「建议收藏」在Struts2中,有时候会出现java.lang.NoSuchMethodException异常,有可能是三种情况导致的运行异常:第一种:Action类的方法被定义成private类型.Action中被访问的方法被定义成private类型.程序在访问其方法时,会抛出以上异常。第二种:Action类继承了ActionSupport类时程序在访问其方法时,也会抛出上述异常。第三种…

    2022年4月20日
    140
  • linux中iostat命令_ios命令行怎么打开

    linux中iostat命令_ios命令行怎么打开简介iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 语法iostat[-c][-d][-h][-N][-k|-m][-t][-V][-x][-

    2022年10月5日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号