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)
上一篇 2022年7月27日 上午8:36
下一篇 2022年7月27日 上午8:46


相关推荐

  • 详解图像直方图均衡化的原理,附自己写的MATLAB和OpenCV2.x下的直方图均衡化函数源码

    详解图像直方图均衡化的原理,附自己写的MATLAB和OpenCV2.x下的直方图均衡化函数源码图像处理开发需求 图像处理接私活挣零花钱 请加微信 图像处理开发资料 图像处理技术交流请加 群号提问 1 图像直方图均衡化有啥效果 看下面的两幅截图你就知道了 从上面两幅的截图中我们发现 将直方图均衡化算法应用于左侧亮图 对比度不同的各个图像后 得到了右侧直方图大致相同的图像 这体现了直方图均衡化在图像增强方面的自适应性 当原始图像的直方图不同而图像结构性内容相同时 直方图均衡化所得到的结果在视觉上几乎是完全于致的 这样的处理效果对

    2026年3月26日
    2
  • QT之二级菜单

    QT之二级菜单QT之二级菜单QT之二级菜单开场白效果图上代码可参考文章下代码结尾开场白今天我们一起来了解下,在我们QT中,二级菜单是如何实现的,在上篇我们学习了QT之系统托盘,QT之自定义菜单,QT之样式styleSheet。今天我们在这基础上,增加二级菜单的功能。效果图大家注意下这里箭头,不是用的默认效果哦,还是自定义的好看哈!O(∩_∩)下面这张图示是默认的。上代码voi

    2022年5月4日
    147
  • CountDownLatch详解

    CountDownLatch详解参考:Java并发编程的艺术JDK版本:AdoptOpenJDK11.0.2+91概念CountDownLatch允许一个或者多个线程去等待其他线程完成操作。CountDownLatch接收一个int型参数,标识要等待的工作线程的个数。当然也不一定是多线程,在单线程中可以用这个int型参数标识多个操作步骤。2方法CountDownLatch2例子下面代码演示2个等待线程通过CountDownLatch去等待3个工作线程完成操作:publicclassCountDownLa.

    2022年7月13日
    23
  • ANSYS RedHawk vs. 传统工具:为什么它成为SI/PI分析的新标准?

    ANSYS RedHawk vs. 传统工具:为什么它成为SI/PI分析的新标准?

    2026年3月15日
    2
  • 月之暗面推新开源模型 ,超越 DeepSeek-R1,登顶全球开源榜首

    月之暗面推新开源模型 ,超越 DeepSeek-R1,登顶全球开源榜首

    2026年3月12日
    2
  • SQL索引的作用

    SQL索引的作用为什么要创建索引呢 这是因为 创建索引可以大大提高系统的性能 nbsp 第一 通过创建唯一性索引 可以保证数据库表中每一行数据的唯一性 nbsp 第二 可以大大加快数据的检索速度 这也是创建索引的最主要的原因 nbsp 第三 可以加速表和表之间的连接 特别是在实现数据的参考完整性方面特别有意义 nbsp 第四 在使用分组和排序子句进行数据检索时 同样可以显著减少查询中分组和排序的时间 nbsp 第五 通过使用索引

    2026年3月26日
    3

发表回复

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

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