下面列出了怎么用org.springframework.boot.web.server.ConfigurableWebServerFactory的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* 配置默认错误页面(仅用于内嵌tomcat启动时) 使用这种方式,在打包为war后不起作用.
*
* @return webServerFactoryCustomizer
*/
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
_logger.debug("WebServerFactoryCustomizer ... ");
ErrorPage errorPage400 =
new ErrorPage(HttpStatus.BAD_REQUEST, "/exception/error/400");
ErrorPage errorPage404 =
new ErrorPage(HttpStatus.NOT_FOUND, "/exception/error/404");
ErrorPage errorPage500 =
new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/exception/error/500");
factory.addErrorPages(errorPage400, errorPage404, errorPage500);
}
};
}
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/index.html"));
//factory.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/index.html"));
}
};
}
/**
* 自定义异常处理路径
*
* @return
*/
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
return (container -> {
ErrorPage error400Page = new ErrorPage(HttpStatus.BAD_REQUEST, "/error/400");
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/error/401");
ErrorPage error403Page = new ErrorPage(HttpStatus.FORBIDDEN, "/error/403");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/error/404");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500");
ErrorPage errorExPage = new ErrorPage(Throwable.class, "/error/500");
container.addErrorPages(error400Page, error401Page, error403Page, error404Page, error500Page, errorExPage);
});
}
/**
* 解决vue-router history 模式下刷新页面的404问题
*/
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
return factory -> {
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
factory.addErrorPages(error404Page);
};
}
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/error/400"));
factory.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500"));
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error/404"));
}
@Override
public void customize(ConfigurableWebServerFactory factory) {
factory.setPort(8086);
}