Spring Boot 3 新增 ControllerAdvice 错误处理类 ProblemDetail
Spring Boot 大约 1714 字说明
Spring 6.0
(Spring Boot 3
)后新增的类。
源码
注入ProblemDetailsExceptionHandler
对象,ResponseEntityExceptionHandler
对象默认是不注入的,ResponseEntityExceptionHandler
中定义了各种错误处理
// org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.ProblemDetailsErrorHandlingConfiguration
public class WebMvcAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "spring.mvc.problemdetails", name = "enabled", havingValue = "true")
static class ProblemDetailsErrorHandlingConfiguration {
@Bean
@ConditionalOnMissingBean(ResponseEntityExceptionHandler.class)
ProblemDetailsExceptionHandler problemDetailsExceptionHandler() {
return new ProblemDetailsExceptionHandler();
}
}
」
属性配置类
@ConfigurationProperties(prefix = "spring.mvc")
public class WebMvcProperties {
public static class Problemdetails {
/**
* Whether RFC 7807 Problem Details support should be enabled.
*/
private boolean enabled = false;
public boolean isEnabled() {
return this.enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}
}
开启 ProblemDetail
默认为false
。
spring:
mvc:
problemdetails:
enabled: true
返回值示例
Content-Type
:application/problem+json
。
状态码:500
。
字段:type
、title
、status
、instance
。
POST http://localhost:8080/api/login
HTTP/1.1 500
Content-Type: application/problem+json
Transfer-Encoding: chunked
Date: Sun, 29 Jan 2023 04:01:16 GMT
Connection: close
{
"type": "/api/login",
"title": "Internal Server Error",
"status": 500,
"instance": "/api/login"
}
RFC 7807
阅读 507 · 发布于 2023-01-29
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Spring Boot JPA 为数据表列 Column 添加注释阅读 1168
-
Git 命令之代码合并 rebase阅读 2362
-
设计模式之状态设计模式阅读 1658
-
Docker 编写 Dockerfile 制作 Spring Boot 镜像阅读 1913
-
微信小程序开发环境调试接口阅读 3639
-
Nginx 配置之反向代理获取真实 IP阅读 3207
-
JDK 1.7 HashMap 源码分析阅读 1647
-
IDEA 配置 Docker 可视化界面阅读 1043
-
HTML 输入框 input 清空按钮阅读 24
-
JavaFX Module reads package 'javafx.beans' from both 'javafx.base' and 'javafx.base'阅读 2301