spring中@valid与@validated的用法

41ik7eoe  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(438)

多亏了这个问题,我想我理解了验证是如何工作的。
至于jpa,这里我们有一个名为jsr-303的规范,它解释了bean验证应该如何工作,然后我们还使用了常用的hibernate验证器或apachebval之类的实现。
我正在努力使用 @Valid 在我代码的某些部分。我没有使用 @Validated 因为我不需要组验证。
你可以在这里找到一个演示项目的例子
PropertyExample 类,您可以看到我标记了我的类以进行bean验证。
使用时 @Validated ,因为我违反了我的约束,所以一切都按预期进行 application.yml 文件。使用时 @Valid 结束 @Validated ,似乎什么都没发生。我不明白为什么。
我也看到那些注解可以用在 ElementType.PARAMETER 但是当我在构造函数初始化期间使用它们时,验证似乎也不会触发。
说明如何使用这些注解(尤其是 @Valid )非常感谢。

pdkcd3nj

pdkcd3nj1#

它在使用validated时起作用,而在使用valid时不起作用,这仅仅是因为springboot需要使用validated对属性类进行注解(如果您希望对它们进行验证的话)。请参阅文档:
每当用spring的@validated注解对@configurationproperties类进行注解时,spring boot就会尝试验证这些类
[...]
您还可以通过注解@bean方法来触发验证,该方法使用@validated创建配置属性。
注意,它们不可能允许在类上使用valid属性,因为valid注解不适用于类。

相关问题