gpt4 book ai didi

java - 如何启用 bean validator - Spring boot

转载 作者:太空宇宙 更新时间:2023-11-04 09:36:02 25 4
gpt4 key购买 nike

我正在将 Kafka 中的数据消费到一个 bean 类中,该类具有验证功能,以确保我正在读取的消息具有有效的数据。

我已经向 bean 类添加了注释,例如 @NotNull 和 @Pattern,但这并未得到应用。

public class Class {
@NotNull
private String field1;

@Pattern(regexp = "^Open$|^Active$|^Overdue$|^Inactive$")
private String field2;
}

如何确保应用 Bean 验证,我之前在创建 REST 服务时使用过 @RequestBody @Valid,但不确定如何在这种情况下应用。

最佳答案

Programmatic Validation :

一些框架(例如 Spring)具有仅使用注释来触发验证过程的简单方法。这主要是为了我们不必与编程验证 API 进行交互。

现在让我们走手动路线并以编程方式进行设置:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();

要验证 bean,我们首先必须有一个 Validator 对象,该对象是使用 ValidatorFactory 构造的。

我们现在要设置这个无效用户 - 使用空名称值:

User user = new User();
user.setWorking(true);
user.setAboutMe("Its all about me!");
user.setAge(50);

现在我们有了一个 validator ,我们可以通过将其传递给验证方法来验证我们的 bean。任何违反 User 对象中定义的约束的行为都将作为 Set 返回。

Set<ConstraintViolation<User>> violations = validator.validate(user);

通过迭代违规,我们可以使用getMessage方法获取所有违规消息。

for (ConstraintViolation<User> violation : violations) {
log.error(violation.getMessage());
}

关于java - 如何启用 bean validator - Spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513365/

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