spring-boot - 在 SpringBoot 中为验证提供默认值
问题描述
我希望 SpringBoot 能够为用户必须输入的字段提供默认值。例如,我有这样的事情:
*Controller class*
@PostMapping("/test")
public ResponseEntity<> myMethod(@RequestBody @Valid MyContract contract) {}
*MyContract class*
@Valid
DataObject dataObject;
*DataObject class*
@Component
public class DataObject {
private @Value("${field1.default}") String field1Default;
private String field1
public String getField1() {
return (field1 == null ? field1Default : field1);
}
}
需要根据每个请求创建 DataObject 类。代码中还有其他地方需要按需创建。所以我想它需要是一个原型对象。但是我不知道如何让 Spring 在为请求创建它时正确创建它。
更新
我已经阅读了有关@RequstBody 的更多信息,例如https://www.javadevjournal.com/spring/spring-request-response-body/和spring @RequestBody 类应该是单例还是原型?,这说明该对象不是一个组件,而是一个简单的 POJO,它从 Json 请求中获取值。所以似乎没有办法从 Spring application.properties 文件中注入 @Values 。有没有其他方法可以解决这个问题?或者另一个建议的实现?
解决方案
推荐阅读
- c# - 是否可以在 IEntityTypeConfiguration 中引用相关实体
配置方法? - php - Phpspreadsheet 转换后的文件应具有包含相同值的附加新列
- c++ - 如何找到当前硬件线程的 L3 缓存索引和 NUMA 节点索引
- python - 使用字典值创建新列
- gstreamer - 使用 gstreamer 获得确定性时间
- c# - 列表框项目初始化,但一旦选择了一个,我不知道如何重置没有选择任何项目的列表框
- javascript - 如何运行每 30 秒调用一次 axios 的函数
- java - 使用毕加索从 Firebase 向 CardView 显示用户图像不起作用
- spartacus-storefront - 本地 Commerce-Spartacus 构建失败 - 无法加载 shrinkwap
- arangodb - How add new key with update in Arangodb