当前位置: 首页 > news >正文

代做网站多少钱北京西城区建设网站

代做网站多少钱,北京西城区建设网站,做房地产网站建设,网站的安全性建设更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-ErrorMvcAutoConfiguration类 ErrorMvcAutoConfiguration类的作用工作原理定制 ErrorMvcAutoConfiguration示例代码1. 添加自定义错误页面2.自定义错误控…

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》
期待您的点赞👍收藏⭐评论✍

重学SpringBoot3-ErrorMvcAutoConfiguration类

  • ErrorMvcAutoConfiguration类的作用
  • 工作原理
  • 定制 `ErrorMvcAutoConfiguration`
  • 示例代码
    • 1. 添加自定义错误页面
    • 2.自定义错误控制器
    • 3. ErrorAttributes定制错误信息
  • 结论

ErrorMvcAutoConfiguration 类是 Spring Boot 中用于自动配置错误处理机制的一个关键组件。这篇文章将详细介绍 ErrorMvcAutoConfiguration类,包括其作用、工作原理以及如何在 Spring Boot 3 应用中定制和使用它。

ErrorMvcAutoConfiguration类的作用

org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration

自动配置类

在 Spring Boot 应用中,当应用遇到运行时异常或者请求映射到不存在的路径时,ErrorMvcAutoConfiguration 类负责自动配置错误处理的相关机制。它确保应用能够以一种友好的方式向用户反馈错误信息,而不是显示标准的错误堆栈信息或空白页。

ErrorMvcAutoConfiguration 提供了一个默认的错误处理页面,并且允许开发者通过添加自定义的错误页面来覆盖默认设置,提高应用的用户体验。

工作原理

ErrorMvcAutoConfiguration 利用 Spring MVC 的异常处理机制来捕捉应用中的各种错误,并将错误信息映射到相应的错误处理控制器。默认情况下,它会映射到 /error 路径。当错误发生时,Spring MVC 会自动重定向到这个路径,并由 BasicErrorController 处理请求,最终返回一个错误视图。

开发者可以通过实现 ErrorViewResolver 接口来自定义错误页面的解析逻辑,或者通过实现 ErrorController 接口并注册为 Bean 来完全控制错误处理的逻辑。

ErrorController

  • errorHtml 方法: 这个方法用于处理 HTTP 请求并返回一个包含错误信息的 HTML 页面。它首先获取 HTTP 请求的状态码,然后创建一个不可修改的 Map 对象,用于存储错误信息。接着设置响应的状态码为请求的状态码,然后调用 resolveErrorView 方法来解析错误视图。最后,如果 resolveErrorView 方法返回了一个非空的 ModelAndView 对象,那么就返回这个对象,否则返回一个新的 ModelAndView 对象,其中包含"error"作为视图名称和之前创建的错误信息模型。
  • error 方法: 这个方法用于处理 HTTP 请求并返回一个包含错误信息的 JSON 对象。它首先获取 HTTP 请求的状态码,然后判断状态码是否为 NO_CONTENT,如果是,则直接返回一个包含状态码的 ResponseEntity 对象。接下来,它创建一个包含错误信息的 Map 对象,并将其与状态码一起封装在一个 ResponseEntity 对象中返回。

返回错误页面的流程

  1. 使用 resolveErrorView 解析错误的自定义视图地址;
  2. 解析过程:
    1. 如果发生了500、404、503、403 这些错误
      1. 如果有模板引擎,默认在 classpath:/templates/error/精确码.html
      2. 如果没有模板引擎,在静态资源文件夹下找 精确码.html
    2. 如果匹配不到 精确码.html这些精确的错误页,就去找 5xx.html4xx.html模糊匹配
      1. 如果有模板引擎,默认在 classpath:/templates/error/5xx.html
      2. 如果没有模板引擎,在静态资源文件夹下找 5xx.html
  3. new ModelAndView("error", model):如果解析不到错误页面的地址,默认的错误页就是 error;

定制 ErrorMvcAutoConfiguration

在Spring Boot 3中,定制 ErrorMvcAutoConfiguration 的方式主要有以下几种:

  1. 添加自定义错误页面:在 src/main/resources/static/error 目录下添加自定义的错误页面,如 404.html500.html 等。Spring Boot 会自动识别这些页面,并在相应的错误发生时使用它们。
  2. 自定义错误控制器:通过创建一个实现了 ErrorController 接口的Bean,可以自定义错误处理逻辑。例如,可以在这个控制器中添加日志记录,或者根据不同的错误类型返回不同的视图或数据格式。
  3. 使用 ErrorAttributes:Spring Boot 提供了 ErrorAttributes 接口,允许开发者在控制器或视图中访问错误相关的属性(如状态码、错误消息等)。这可以用来创建更丰富的错误信息反馈。

示例代码

1. 添加自定义错误页面

在Spring Boot应用中,可以通过在 src/main/resources/static/error目录下添加错误页面来自定义错误响应。例如,对于404错误(页面未找到),可以添加一个名为 404.html的页面。同样地,对于500错误(服务器内部错误),可以添加一个名为 500.html的页面。Spring Boot会自动识别并在相应的错误发生时使用这些页面。

示例代码:

假设你已经创建了 404.html500.htmlsrc/main/resources/static/error目录下,无需其他配置,Spring Boot会自动使用这些页面响应相应的错误。

自定义404页面

2.自定义错误控制器

下面是一个简单的自定义错误控制器 ErrorController 的示例:

package com.coderjia.springboot304web.controller;import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author CoderJia* @create 2024/03/12 9:09* @Description**/
@RestController
public class MyCustomErrorController implements ErrorController {@RequestMapping("/error")public String handleError(HttpServletRequest request) {// 从请求中获取错误状态码Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);if (status != null) {int statusCode = Integer.parseInt(status.toString());if (statusCode == HttpStatus.NOT_FOUND.value()) {return "Error 404: Page not found";} else if (statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) {return "Error 500: Internal server error";}}return "Error: unknown";}
}

自定义错误信息

通过这种方式,开发者可以根据不同的错误类型提供不同的处理逻辑和反馈信息。

3. ErrorAttributes定制错误信息

Spring Boot 允许通过 ErrorAttributes 接口定制错误信息,开发者可以使用这个接口来获取或修改错误详情。这些信息然后可以在自定义的错误控制器或错误视图中使用。

创建一个类来扩展 DefaultErrorAttributes 类,可以添加或修改错误属性:

package com.coderjia.springboot304web.config;import org.springframework.boot.web.error.ErrorAttributeOptions;
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.WebRequest;import java.util.Map;/*** @author CoderJia* @create 2024/03/12 9:13* @Description**/
@Component
public class CustomErrorAttributes extends DefaultErrorAttributes {@Overridepublic Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, options);// 可以在此处添加自定义属性errorAttributes.put("customMessage", "Something went wrong!");return errorAttributes;}
}

在这个例子中,我们添加了一个 customMessage 属性到错误响应中。这个属性可以在错误控制器或错误页面中使用,从而提供更丰富的错误信息。

自定义customMessage

结论

ErrorMvcAutoConfiguration 类是 Spring Boot 中用于错误处理的重要组件,它提供了一个简便的机制来自动配置错误处理逻辑,同时也提供了多种方式供开发者根据需求定制错误处理。通过合理使用 ErrorMvcAutoConfiguration,可以提高 Spring Boot 应用的健壮性和用户体验。

http://www.yayakq.cn/news/858887/

相关文章:

  • 教育网站前置审批做网站有er图
  • 网站开发 管理方案电商包括哪些平台
  • 免费个人网站空间申请丹东供求园
  • 南京网站排名提升足球队世界排名榜
  • 查询自己网站外链湖南省网站备案
  • 有没有免费的网站软件哈尔滨专业做网站公司
  • 网站建设和维护公司福建省建设厅网站施工员查询
  • 网站正在建设中提示页面设计欣赏ui是网站建设吗
  • 网站速度慢如何做优化设计制作个人网站
  • 如何建设网站推广平台wordpress用户模块
  • 网站推广的网站作用四大商业网站
  • 滨州j建设局网站投诉电话虚拟空间app
  • 爱站网 关键词挖掘工具站项目管理中软件分类为
  • 网站策划教程软文营销代理
  • 南京网站建设要多少钱NRGnetwork wordpress
  • 长春网站建设加q479185700wordpress 链接管理
  • 网站开发工具的功能包括网络管理员正在设计新的无线网络
  • 网站建设横幅标语邯郸公司注册
  • 国外模板网站长春火车站到长春机场大巴时刻表
  • 网站设计制作费用多少做网站买个域名多少钱
  • 免费建设展示网站斗破苍穹制作公司
  • 做图片视频的网站有哪些网站开发服务外包合同
  • 网站内容怎么选择公司网站怎么更新需要怎么做
  • 沈阳个人做网站唐朝网站的地址
  • 电脑网站做淘宝客网络营销专员的就业前景
  • 河田镇建设局网站医疗器械分类目录2021
  • 深圳 电子商务网站开发个人网站 摄影展示
  • 网站开发设计费 怎么入账厦门专业网站设计代理
  • 长宁网站设计泰安企业网站制作
  • 上海网站建设开发制作一个ip地址做多个网站