浅谈什么是SpringBoot异常处理自动配置的原理

异常处理自动配置

ErrorMvcAutoConfiguration自动配置类自动配置了处理规则,给容器中注册了多种组件

errorAttributes组件,类型为DefaultErrorAttributes。这个组件定义错误页面中可以包含哪些数据



basicErrorController组件,类型为BasicErrorController。处理默认/error路径的请求,new一个iderrorModelAndView对象来响应页面

error组件,类型为View。响应的是默认错误页面

beanNameViewResolver组件,类型为BeanNameViewResolver。这个组件会按照返回的视图名作为组件的id去容器中找View对象

conventionErrorViewResolver组件,类型为DefaultErrorViewResolver。这个组件用来解析错误视图页面,如果发生错误,会以HTTP的状态码作为视图页面地址找到真正的页面


总结:

  • 如果需要添加页面错误可以获取的数据,就自定义DefaultErrorAttributes组件
  • 如果需要修改错误页面跳转逻辑,就自定义BasicErrorController组件
  • 如果需要修改错误页面存放的静态资源路径,就自定义DefaultErrorViewResolver组件

到此这篇关于浅谈什么是SpringBoot异常处理自动配置的原理的文章就介绍到这了,更多相关SpringBoot异常处理自动配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot之自定义全局异常处理的实现

    前言: 在实际的应用开发中,很多时候往往因为一些不可控的因素导致程序出现一些错误,这个时候就要及时把异常信息反馈给客户端,便于客户端能够及时地进行处理,而针对代码导致的异常,我们一般有两种处理方式,一种是throws直接抛出,一种是使用try..catch捕获,一般的话,如果逻辑的异常,需要知道异常信息,我们往往选择将异常抛出,如果只是要保证程序在出错的情况下 依然可以继续运行,则使用try..catch来捕获. 但是try..catch会导致代码量的增加,让后期我们的代码变得臃肿且难以维护.当

  • SpringBoot学习之全局异常处理设置(返回JSON)

    SpringBoot学习--全局异常处理设置(返回JSON) 需求 现在习惯使用ajax的方式发起请求,所以经常需要服务端返回一个json或者字符串. 控制全局的异常处理. 如果在单个方法中使用try,catch把方法包裹起来,工作量大,而且会异常的抛出而导致@Transactional注解的方法事务不会回滚. 说明 使用@ControllerAdvice注解 使用@ExceptionHandler注解 @ControllerAdvice 该注解是spring2.3以后新增的一个注解,主要是用来

  • 浅谈SpringBoot 中关于自定义异常处理的套路

    在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案.Spring Boot 中,对异常的处理有一些默认的策略,我们分别来看. 默认情况下,Spring Boot 中的异常页面 是这样的: 我们从这个异常提示中,也能看出来,之所以用户看到这个页面,是因为开发者没有明确提供一个 /error 路径,如果开发者提供了 /error 路径 ,这个页面就不会展示出来,不过在 Spring Boot 中

  • SpringBoot2.X Kotlin系列之数据校验和异常处理详解

    在开发项目时,我们经常需要在前后端都校验用户提交的数据,判断提交的数据是否符合我们的标准,包括字符串长度,是否为数字,或者是否为手机号码等:这样做的目的主要是为了减少SQL注入攻击的风险以及脏数据的插入.提到数据校验我们通常还会提到异常处理,因为为了安全起见,后端出现的异常我们通常不希望直接抛到客户端,而是经过我们的处理之后再返回给客户端,这样做主要是提升系统安全性,另外就是给予用户友好的提示. 定义实体并加上校验注解 class StudentForm() { @NotBank(message

  • 浅谈什么是SpringBoot异常处理自动配置的原理

    异常处理自动配置 ErrorMvcAutoConfiguration自动配置类自动配置了处理规则,给容器中注册了多种组件 errorAttributes组件,类型为DefaultErrorAttributes.这个组件定义错误页面中可以包含哪些数据 basicErrorController组件,类型为BasicErrorController.处理默认/error路径的请求,new一个id为error的ModelAndView对象来响应页面 error组件,类型为View.响应的是默认错误页面 b

  • 浅谈HBase在SpringBoot项目里的应用(含HBaseUtil工具类)

    背景: 项目这两个月开始使用HBase来读写数据,网上现成的HBase工具类要么版本混杂,要么只是Demo级别的简单实现,各方面都不完善: 而且我发现HBase查询有很多种方式,首先大方向上有 Get 和 Scan两种,其次行键.列族.列名(限定符).列值(value).时间戳版本等多种组合条件,还有各种过滤器的选择,协处理器的应用,所以必须根据自己项目需求和HBase行列设计来自定义HBase工具类和实现类! 经过我自己的研究整理,在此分享下初步的实现方案吧 ~ 注:HBase版本:1.3.0

  • 浅谈react+es6+webpack的基础配置

    这是模块化开发.主流框架和最新版的ECMAScript语法规范的一个小demo 准备工作 安装 nodeJs 首先进入node官网,去下载最新版的nodeJs webpack 安装webpack npm install webpack -g 参数-g表示全局安装webpack,你在cmd命令中哪个文件夹下都可以使用webpack的命令,如果不加-g的话,是只可以在你安装webpack的目录下使用webpack这个命令 webpack 也有一个 web 服务器 npm install webpac

  • 浅谈mac下maven的安装配置与使用

    出来实习快半年了,还有一个多月也就即将毕业了.我刚进公司的时候,项目刚刚上线,到现在接近50w日活,成长真不少(虽然曾经因为自己写的SQL性能太差把服务器CPU搞到爆血管两次).你在项目过程中写的业务代码很多,在这个过程中感到很有成就感的,但是如果你只是满足于此,就很难进步了.想要提升自身的能力,还得靠自己在空闲的时间多点去学习,学习项目中相关的技术,学习你的算法逻辑能力.这个星期我们先一起来学习经常接触的maven,maven确实是一个利器,在公司都是架构师负责搭建好项目,我们很少有机会去搭一

  • 浅谈JavaWeb中的web.xml配置部署描述符文件

    1. 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码. DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义). 所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-App和WEB-APP

  • 全网最深分析SpringBoot MVC自动配置失效的原因

    前言 本来没有计划这一篇文章的,只是在看完SpringBoot核心原理后,突然想到之前开发中遇到的MVC自动失效的问题,虽然网上有很多文章以及官方文档都说明了原因,但还是想亲自看一看,本以为很简单的事情,没想到却引发出一个较复杂的问题,请教了很多人都没有得到结果,网上文章也没有写清楚的,最后还是自己搞了很久才弄明白的,此篇主要记录自己的一个分析过程. 正文 引出问题 上面是SpringBoot MVC的自动配置,问题是这样的,当我们需要自己配置MVC时,有三种选择: 实现WebMvcConfig

  • SpringBoot使用自动配置xxxAutoConfiguration

    常用的类: @ConditionalOnProperty(name = "use.redis.session.store", havingValue = "true") @ConditionalOnClass(Session.class) @AutoConfigureAfter(RedisAutoConfiguration.class) @ConditionalOnWebApplication @ConditionalOnMissingBean(RedisHttpS

  • 浅谈vue实现双向事件绑定v-model的原理

    目录 解释: 总结 补充 与js或者jquery直接改变操作dom不同,vue使用v-model实现数据的双向绑定,它会根据控件类型自动选取正确的方法来更新元素. v-model就是vue的双向绑定的指令,能将页面上控件输入的值同步更新到相关绑定的data属性,也会在更新data绑定属性时候,更新页面上输入控件的值 官方文档这么解释: v-model只不过是一个语法糖而已,真正的实现靠的还是 v-bind:绑定响应式数据 触发 input 事件 并传递数据 (核心和重点) 如下代码 <input

  • JAVA Spring Boot 自动配置实现原理详解

    目录 引言 主启动类的注解@SpringBootApplication 1.@SpringBootConfiguration 2.@ComponentScan 3.@EnableAutoConfiguration 3.1.@AutoConfigurationPackage 3.2.@Import({AutoConfigurationImportSelector.class}) spring-boot-autoconfigure中的默认配置类 配置数据的绑定 总结 引言 在使用ssm框架的时候,每

  • Spring Boot自动配置的原理及@Conditional条件注解

    目录 1 @SpringBootApplication自动配置原理 2 @Conditional系列条件注解 1 @SpringBootApplication自动配置原理 @SpringBootApplication是一个组合注解,主要由@ComponentScan.@SpringBootConfiguration.@EnableAutoConfiguration这三个注解组成.@EnableAutoConfiguration是Spring Boot实现自动配置的关键注解. @Component

随机推荐