关于springboot2.3以后的error信息默认不返回

来源:3-3 验证注解和自定义验证注解

慕函数5504715

2021-10-25

你好 老师,在学习这一章的时候,使用@Vaild注解进行入参检测的时候,如果body格式不正确,只会返回400的错误码,不会显示自己定义的详细错误信息描述,然后在网上查了一下,在springboot 2.3之后,默认不显示错误的json信息。https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes#changes-to-the-default-error-pages-content,
图片描述
这是我没有配置这两个属性的时候
图片描述
图片描述
但是在控制台是输出了这个错误的警告

2021-10-25 11:08:53.812  WARN 19148 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public cloud.lixudong.starter.domain.dto.UserDTO cloud.lixudong.starter.rest.AuthorizeResource.register(cloud.lixudong.starter.domain.dto.UserDTO): [Field error in object 'userDTO' on field 'email': rejected value [lyzml1024]; codes [Email.userDTO.email,Email.email,Email.java.lang.String,Email]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [userDTO.email,email]; arguments []; default message [email],[Ljavax.validation.constraints.Pattern$Flag;@1c06c3c6,.*]; default message [格式不正确]] ]

当我进行了配置以后,就可以正确的返回JSON
图片描述
图片描述

但是我pull了您的代码看springboot 版本是2.3.3的,但是没有配置这两个选项,仍然可以正确输出错误的信息,这是为什么呢

我在按照官网描述添加了对应的配置之后可以显示错误信息了,但是我pull了你的代码,没有配置这些属性,仍然可以正确的返回错误的json信息,这是为什么呢。

写回答

1回答

接灰的电子产品

2021-10-26

应该和 zalando problem 的配置有关,我们其实没有采用 spring 自带的 json 输出,而是使用了 problem 这个类库,你对比一下 jackson 和 problem 的配置

0
1
慕勒4294746
视频里工程目录也没有创建exceptionde的目录呢 没有做配置又是咋返回的 但git的代码确实有 按照problem的配置了也确实返回了
2024-06-26
共1条回复

Spring Security+OAuth2 精讲,打造企业级认证与授权

一站式掌握主流安全框架与行业解决方案,从容应对各种安全难题。

1042 学习 · 316 问题

查看课程