SpringBoot 前后端分离配置404错误页面

错误页面配置

方式1

@Configuration
public class ErrorPageConfig implements ErrorPageRegistrar {
    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        registry.addErrorPages(
                new ErrorPage(HttpStatus.FORBIDDEN, "/403"),
                new ErrorPage(HttpStatus.NOT_FOUND, "/404"),
                new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500")
        );
    }
}

 

方式2

@Configuration
public class ErrorConfig {
	@Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory tomcatServletWebServerFactory = new TomcatServletWebServerFactory();
        Set<ErrorPage> errorPages = Sets.newHashSet(
                new ErrorPage(HttpStatus.FORBIDDEN, "/403"),
                new ErrorPage(HttpStatus.NOT_FOUND, "/404"),
                new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500")
        );
        tomcatServletWebServerFactory.setErrorPages(errorPages);
        return tomcatServletWebServerFactory;
    }
}

 

错误页面控制层

@RestController
@RequestMapping
public class ErrorController {

    @RequestMapping(value = "/403")
    @ResponseStatus(value = HttpStatus.OK)
    public Response error403(HttpServletRequest request) {
        log.info("servletPath=[{}]", request.getServletPath());
        return Response.failure(ResponseCode.FORBIDDEN);
    }

    @RequestMapping(value = "/404")
    @ResponseStatus(value = HttpStatus.OK)
    public Response error404(HttpServletRequest request) {
        log.info("servletPath=[{}]", request.getServletPath());
        return Response.failure(ResponseCode.NOT_FOUND);
    }

    @RequestMapping(value = "/500")
    @ResponseStatus(value = HttpStatus.OK)
    public Response error500(HttpServletRequest request) {
        log.info("servletPath=[{}]", request.getServletPath());
        return Response.failure(ResponseCode.INTERNAL_SERVER_ERROR);
    }
}

你可能感兴趣的:(Spring-WEB,开发笔记,Spring)