Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为Spring应用程序接收或保存的任何时间字段、参数或表单元素设置全局验证?_Java_Spring_Spring Mvc_Spring Data Jpa - Fatal编程技术网

Java 如何为Spring应用程序接收或保存的任何时间字段、参数或表单元素设置全局验证?

Java 如何为Spring应用程序接收或保存的任何时间字段、参数或表单元素设置全局验证?,java,spring,spring-mvc,spring-data-jpa,Java,Spring,Spring Mvc,Spring Data Jpa,我想对Spring应用程序接收到的或(或者)保存在DB中的所有时态类型对象实现全局验证。这包括LocalDate,LocalDateTime,Instant,但也可能包括任何其他,这就是为什么我想对java.time.temporal的所有子类实现一次 为了充分披露,我需要验证所有值是否在“今天-5年”之后和“今天+5年”之前。但如果这种全局验证是可能的,我们计划将其用于其他条件和类型 这包括检查作为请求参数、路径参数、部分表单数据或API请求主体中的json对象接收的日期。 基本上无论如何,我

我想对Spring应用程序接收到的或(或者)保存在DB中的所有
时态
类型对象实现全局验证。这包括
LocalDate
LocalDateTime
Instant
,但也可能包括任何其他,这就是为什么我想对
java.time.temporal
的所有子类实现一次

为了充分披露,我需要验证所有值是否在“今天-5年”之后和“今天+5年”之前。但如果这种全局验证是可能的,我们计划将其用于其他条件和类型

这包括检查作为请求参数、路径参数、部分表单数据或API请求主体中的json对象接收的日期。 基本上无论如何,我可以从中接收日期的任何格式都需要根据上述验证逻辑进行检查

我有很多API端点需要维护,我也有同样多(如果不是更多的话)的控制器方法和随这些方法而来的请求体到对象的映射。所以,我试图看看是否有一个解决方案只使用1个验证器,并在找到日期时应用它

也可以接受:对我的实体保存的所有时间字段都这样做(但这将是我的第二选择)

我已经尝试过自定义验证器和it词汇(通过
initBinder
和自定义注释应用),最大的问题是维护所有端点的显式添加配置,并确保我的团队将来不会忘记将其添加到端点。这就是为什么我希望它被全局设置为默认值,额外的好处是对于一些非常罕见的端点显式跳过它