gpt4 book ai didi

java - 使用 spring 验证来验证对象的特殊字符

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

我正在开发 springboot REST API,并且请求中有一个包含大约 50 个字段的对象。如果任何字段具有无效的特殊字符,我的要求是抛出无效的请求。我可以通过在对象内部的字段上添加 @Pattern 注释来验证正则表达式来使其工作。

我的问题是这些字段可能会增长,从长远来看,维护将是一个问题。有没有办法可以在对象本身上添加 validator ,以便验证该对象内的所有字段,而不是手动将其添加到该对象内的所有字段上。例如,

@Pattern(regexp="^[a-zA-Z0-9\s]*$")
Object abcField = null

是否有更好的方法使其成为更通用的解决方案

最佳答案

在创建对象之前,有很多方法可以验证参数。我将介绍其中三个:

1-第一个也是最简单的方法是实现一个负责验证参数的ObjectValidator类。显然,您应该以这种方式手动调用 validator 。

2- 我在项目中很少使用的另一种方法是在构造函数中验证对象。如果参数的值无效,则可以抛出异常。

3- 在这种情况下,实现自定义注释是我最喜欢的解决方案。您可以实现自己的注释并将其放在数据类之上。您需要使用以下依赖项:

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.4.1.Final</version>
</dependency>

您的 validator 类也应该实现 ConstraintValidator 接口(interface)。

有关实现您自己的自定义注释的更多信息,您可以阅读this链接。

如果您有更多问题,请随时提问:)

关于java - 使用 spring 验证来验证对象的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53545530/

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