springboot异常重定向

       最近因项目使用vue,前后端分离,刷新页面的时候会把vue的路由当做服务地址去请求导致404错误。固需要做404异常重定向。

在springboot 1.x版本的时候在启动类里加上如下代码,遇到404错误即重定向到index.html页

@Bean
	public EmbeddedServletContainerCustomizer containerCustomizer() {
		 return (container -> {
			    ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
			    container.addErrorPages(error404Page);
			  });
	}

但是在springboot2.X的时候没有了EmbeddedServletContainerCustomizer类,用tomcat代替了,

springboot异常重定向_第1张图片

因此需要换种方式来处理异常,重定向到index.html

import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;

/**
 * 异常转发
 */
@Component
public class ErrorConfig implements ErrorPageRegistrar {

    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        ErrorPage error400Page = new ErrorPage(HttpStatus.BAD_REQUEST, "/index.html");
        ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/error401Page");
        ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
        ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error500Page");
        registry.addErrorPages(error400Page,error401Page,error404Page,error500Page);
    }
}

 

你可能感兴趣的:(springboot)