我已经是Spring Framework框架的忠实粉丝。对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题。但是,它构建的J2EE项目变得比较臃肿,需要被一种新的解决方案替代。
我最大的抱怨就是最开始使用Spring Framework构建项目十分缓慢和复杂,比如构建一个包含JPA的MVC应用。为改变这种情况,Spring Boot应运而生了。
Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它。它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去完成。对于我来说,自定义错误页面就是其中之一。比如404错误,如果不处理的话,会出现“This application has no explicit mapping for /error, so you are seeing this as a fallback.”的错误信息,如图所示:
Spring Boot默认使用嵌入式Tomcat,默认没有页面来处理404等常见错误。因此,为了给用户最佳的使用体验,404等常见错误需要我们自定义页面来处理。
我们需要用org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer类来实现该功能,在Spring Boot的启动类(main方法所在类)当中,添加如下代码:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer(){
return (container -> {
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
container.addErrorPages(error401Page, error404Page, error500Page);
});
}
这是使用Java 8的lambda表达式来简化实现的方式,在代码中创建了三个ErrorPage实例来处理三个通用的HTTP错误状态码,并将他们添加到container当中。ErrorPage类是一个封装了错误信息的类,它可以在Jetty和Tomcat环境下使用。
这是使用Java 7内部类的一个等价实现方式:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer(){
return new EmbeddedServletContainerCustomizer() {
@Override
publicvoidcustomize(ConfigurableEmbeddedServletContainer container){
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
container.addErrorPages(error401Page, error404Page, error500Page);
}
};
}
错误页面需要放在Spring Boot web应用的static内容目录下,它的默认位置是:src/main/resources/static,如下图所示:
点击链接下载图中的三个文件的压缩文件,这些文件使用 HTML5 Boilerplate制作。
现在,就可以看到一个简易版本的错误页面,可以根据自己的需要对它进行一些美化。
另外如果想用全局的异常捕获,可以使用 @ControllerAdvice @ExceptionHandler
转自:https://my.oschina.net/dabird/blog/593643
相关推荐
总结来说,Spring Boot自定义错误页面是一项提升用户体验的重要功能。通过提供个性化的404、500和401页面,我们可以使用户在遇到问题时获得更好的反馈,同时保持应用的专业形象。资源中的404.html、500.html和401....
本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第...自定义欢迎页面、Icon、错误页面)、安装MySQL数据库和客户端、配置数据源、Spring Data JPA代码、Spring Data JPA增删改查实例、安装Redis和...
本文将详细介绍如何在Spring Boot中自定义错误页面,以及处理404和500这两种常见错误。 首先,让我们了解Spring Boot默认的错误处理机制。Spring Boot通过`ErrorController`接口和`ErrorAttributes`类来处理错误...
Spring Boot 框架提供了非常灵活的错误处理机制,允许开发者自定义错误页面和错误信息。在本文中,我们将详细介绍如何在 Spring Boot 项目中自定义 404 错误信息。 一、为什么需要自定义错误信息? 在 Web 应用...
错误处理机制是 Spring Boot 中的一个重要组件,通过错误处理机制,我们可以对应用程序的错误信息进行捕获和处理。 Spring Boot 提供了多种错误处理机制,如 try-catch 语句、错误处理器等。 在错误处理机制中,...
总结起来,本套学习资料涵盖了Spring Boot自定义错误页面的实践,以及如何在Spring Boot项目中集成和使用Dubbo进行服务治理。同时,结合Egg.js和Vue.js的项目实例,提供了完整的前后端开发经验。通过深入学习这些...
- Spring Boot提供了统一的异常处理机制,可以自定义错误页面和返回格式。 - 日志框架如Logback或Log4j用于记录系统运行情况,便于调试和监控。 **8. 测试支持** - Spring Boot包含JUnit和Mockito等测试工具的支持...
开发者工具提供了一些便利功能,如应用热重载、实时代码更改、错误页面等,极大地提高了开发效率。 7. **数据访问** Spring Boot对JPA和MyBatis等持久层框架有很好的支持,可以轻松地与MySQL、PostgreSQL等数据库...
8. **Web MVC**:Spring Boot对Spring MVC进行了预配置,包括静态资源处理、错误页面配置、视图解析等。`WebMvcConfigurer`接口提供自定义MVC行为的机会。 9. **Data访问**:Spring Boot支持JPA、Hibernate、...
3.3 定制应用程序错误页面 62 3.4 小结 64 第4章 测试 66 4.1 集成测试自动配置 66 4.2 测试Web应用程序 68 4.2.1 模拟Spring MVC 69 4.2.2 测试Web安全 72 4.3 测试运行中的应用程序 74 4.3.1 用...
- 自定义登录页面:可以创建自己的登录页面并配置Spring Security来处理表单提交。 - 国际化支持:Spring Security支持多语言错误消息,可以根据需要进行配置。 - 安全审计:记录和分析安全事件,以便追踪潜在的...
自定义错误页面111111111
此外,Spring Boot还支持自定义错误页面,可以在`error`目录下创建HTML文件来定制错误信息的展示。 六、其他关键特性 1. 自动配置:Spring Boot通过`spring-boot-actuator`模块提供了各种端点,如健康检查、应用...
3.3 定制应用程序错误页面 62 3.4 小结 64 第4章 测试 66 4.1 集成测试自动配置 66 4.2 测试Web应用程序 68 4.2.1 模拟Spring MVC 69 4.2.2 测试Web安全 72 4.3 测试运行中的应用程序 74 ...
- **Spring Boot 配置**:学习如何自定义配置,包括日志级别、服务器端口、缓存管理等。 11. **静态资源处理** - **静态资源路径**:配置静态资源目录,如 CSS、JavaScript 和图片文件,理解 `static` 目录的默认...
5. **Error Pages**:Spring Boot Security还会自动配置错误页面,例如未授权(401)和禁止(403)的页面。 6. **Passwords**:Spring Boot Security也提供了一套工具来处理密码,包括哈希和盐值的生成,以及密码的...
对于整合Web开发,文档详细讲解了如何在Spring Boot中处理JSON数据,配置静态资源访问,实现文件上传功能,使用@ControllerAdvice进行全局异常处理,自定义错误页,配置CORS支持以及注册拦截器等。这些功能是Web应用...
6. **自定义错误页面**:Spring Boot默认提供了一个简单的错误页面,但我们可以根据需要提供自己的错误视图。这可以通过配置`error`路径下的视图或者在`src/main/resources/error`目录下创建模板文件实现。 7. **...
在本文中,我们将深入探讨如何将Web应用与Spring Boot框架集成帆软报表工具Finereport。Spring Boot以其简洁、高效和自动配置的特性,成为Java领域开发微服务和Web应用的首选框架。而Finereport作为一款强大的报表...