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年5月19日
    45
  • 基于简单sql语句的sql解析原理及在大数据中的应用「建议收藏」

    基于简单sql语句的sql解析原理及在大数据中的应用

    2022年1月31日
    49
  • Zynq-Linux移植学习笔记之一-入门[通俗易懂]

    Zynq-Linux移植学习笔记之一-入门[通俗易懂]1、相关网站zynqlinux软件网站:www.wiki.xilinx.comzynqu-bootgithub地址:https://github.com/xilinx 2、启动过程3、u-boot配置3.1下载u-bootUBOOT有多个版本,可以去网站上下载相应的版本。14.5及早期的版本对Micron的QSPIFlash芯片支持不完整。建议下载后期

    2022年9月2日
    3
  • python对文件的操作

    python对文件的操作一.python21.将字符串写入文件#-*-coding:utf-8-*-data_str=”Helloworld!!!”file_object=open(‘D:/test.txt’,’w’)file_object.write(data_str)file_object.close()2.以追加的方式写入文件#-*-coding:utf-8…

    2022年5月25日
    38
  • CentOS安装python-dev,python-devel[通俗易懂]

    CentOS安装python-dev,python-devel[通俗易懂]说明安装Python-dev,但是在centos上面没有该包.[root@masteraudiotools-3.0]#yuminstallpython-dev已加载插件:fastestmirrorLoadingmirrorspeedsfromcachedhostfile*base:mirrors.163.com*extras:centos.ustc.edu.cn*updates:mirrors.163.com没有可用软件包python-dev。原

    2022年6月22日
    155
  • 中国90后福布斯排行榜前30_2019中国90后十大富豪榜

    中国90后福布斯排行榜前30_2019中国90后十大富豪榜作者|佩奇出品|区块链大本营(blockchain_camp)近日,福布斯发布“Forbes30Under30Asia2019”金融和风险投资类榜单…

    2022年9月30日
    0

发表回复

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

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