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);
        });
    }
 
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【系统架构设计师】第一章:操作系统(1.2.1)进程的三态模型与五态模型

    本篇帖子继续上篇。有兴趣可以点击链接进行查看以前写过的文章。【系统架构设计师】第一章:操作系统(1.1.1—1.1.2)参考教材:《系统架构设计师考试全程指导(第二版)》《系统架构设计师教程》1.2处理器管理在单用户多任务的操作系统中,或者多用户多任务的操作系统中,系统同时运行多个程序,这些程序的并行运行势必形成对系统资源的竞争使用。因此,操作系统必须能够处理和管理这种并行运行的程序,使之对资源的使用按照良性的顺序进行。1.2.1进程的状态首先我们要搞清楚三个东西的区别:程序,进程,.

  • 黑色非主流图片伤感女_用一串代码让全班同学说卧槽的代码

    黑色非主流图片伤感女_用一串代码让全班同学说卧槽的代码校内代码xiaonei代码xiaonei黑色非主流代码http://xioonei.cn

    2022年10月18日
  • select into from 与 insert into select用法详解

    select into from 与 insert into select用法详解selectintofrom和insertintoselect都被用来复制表结构和表中数据,两者的主要区别为:selectintofrom要求目标表不存在,因为在插入时会自动创建。insertintoselectfrom要求目标表已存在数据库中。一、INSERTINTOSELECT语句  1、语句形式为:

  • dirsearch使用方法_ISR6051中文使用手册

    dirsearch使用方法_ISR6051中文使用手册dirsearch当前版本:v0.3.9(2019.11.26)Overviewdirsearch是一种高级的命令行工具,旨在对web服务器中的目录和文件进行暴力激活成功教程。gitclonehttps://github.com/maurosoria/dirsearch.gitcddirsearchpython3dirsearch.py-u<URL>-e<EXTENSION>也可以使用此别名直接发送到代理python3/path/to/dirsearch/d

  • centos下修改mysql默认端口_centos7修改mysql默认端口「建议收藏」

    centos下修改mysql默认端口_centos7修改mysql默认端口「建议收藏」项目运行时,一般mysql的默认端口是3306。如何修改呢?现在我将带领大家一起做实验。修改mysql的默认端口一般有三个步骤:1、编辑mysql的配置文件/etc/my.cnf修改你的端口号比如将3306修改成33232、防火墙开放3323端口3、修改项目配置文件中的配置项hostport首先是编辑配置文件,将[mysqld]下面的port=3306改成port=3323v…

    2022年10月30日
  • 罗盘时钟代码(转载)

    罗盘时钟代码(转载)文件结构如下:$tree├──css│└──demo.css├──hello.html└──js└──demo.js浏览器打开hello.html即可(文件见附录),效果如下:#—————————————————————————-…

发表回复

您的电子邮箱地址不会被公开。

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