gpt4 book ai didi

spring - Spring 中的 server.error.include-binding-errors=on-param 有什么作用?

转载 作者:行者123 更新时间:2023-12-04 12:32:26 25 4
gpt4 key购买 nike

application.properties中的以下设置是什么?在 Spring 应用程序中做什么?

server.error.include-binding-errors=on-param
我在文档中找不到它。 alwaysnever值是不言自明的,但我不明白 on-param .

最佳答案

首先,我所做的是在 server.error.include-binding-errors 上进行全局搜索。在图书馆里,这让我找到了 spring-configuration-metadata.json

    {
"name": "server.error.include-binding-errors",
"type": "org.springframework.boot.autoconfigure.web.ErrorProperties$IncludeAttribute",
"description": "When to include \"errors\" attribute.",
"sourceType": "org.springframework.boot.autoconfigure.web.ErrorProperties",
"defaultValue": "never"
},
我们看到相关的属性是 errors在这里,值类是 IncludeAttribute .通过查看 IncludeAttribute#ON_PARAM 中的文档

public static final ErrorProperties.IncludeAttribute ON_PARAM
Add error attribute when the appropriate request parameter is not "false".


我们知道 errors当请求参数不是“false”时,将添加属性。

如果你想要一些具体的东西,让我们考虑下面的例子:
Controller
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

@RestController
public class TestController {
@PostMapping("/dummy")
public String test(@Valid @RequestBody DummyDTO dummyDTO) {
return "";
}
}
DTO
import javax.validation.constraints.NotNull;

public class DummyDTO {
@NotNull(message = "mandatoryText can not be null")
private String mandatoryText;

private String canBeNullText;

public String getMandatoryText() {
return mandatoryText;
}

public void setMandatoryText(String mandatoryText) {
this.mandatoryText = mandatoryText;
}

public String getCanBeNullText() {
return canBeNullText;
}

public void setCanBeNullText(String canBeNullText) {
this.canBeNullText = canBeNullText;
}
}
假设我们设置 server.error.include-binding-errors=on-param当我们使用参数 运行时错误=假
curl -H "Content-Type: application/json" --data '{"canBeNull":""}' -X POST http://localhost:8080/dummy?errors=false
结果将不包括 errors
{
"timestamp": "2021-06-11T13:38:29.868+00:00",
"status": 400,
"error": "Bad Request",
"message": "",
"path": "/dummy"
}
当我们使用参数 运行时错误=真
curl -H "Content-Type: application/json" --data '{"canBeNull":""}' -X POST http://localhost:8080/dummy?errors=true
结果将包括 errors作为
{
"timestamp": "2021-06-11T13:51:00.649+00:00",
"status": 400,
"error": "Bad Request",
"errors": [{
"codes": ["NotNull.dummyDTO.mandatoryText", "NotNull.mandatoryText", "NotNull.java.lang.String", "NotNull"],
"arguments": [{
"codes": ["dummyDTO.mandatoryText", "mandatoryText"],
"arguments": null,
"defaultMessage": "mandatoryText",
"code": "mandatoryText"
}
],
"defaultMessage": "mandatoryText can not be null",
"objectName": "dummyDTO",
"field": "mandatoryText",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotNull"
}
],
"path": "/dummy"
}

引用:
Web 响应式的实现
DefaultErrorWebExceptionHandler#isIncludeBindingErrors
AbstractErrorWebExceptionHandler#isBindingErrorsEnabled
Web servlet 的实现
BaseErrorController#isIncludeBindingErrors
AbstractErrorController#isBindingErrorsEnabled

关于spring - Spring 中的 server.error.include-binding-errors=on-param 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67922434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com