gpt4 book ai didi

java - 我可以在 Spring Boot 中从服务中显式调用自定义 validator 吗?

转载 作者:行者123 更新时间:2023-12-01 16:55:59 26 4
gpt4 key购买 nike

我有一个实现 Validator 的自定义 validator 类,如下所示:

 public class MyCustomValidator implements Validator

我希望能够从服务调用其 validate() 方法。该方法如下所示:

@Override
public void validate(Object target, Errors errors) {
// validation goes here
MyClass request = (MyClass) target;
if (request.getId() == null) {
errors.reject("content.id", "Id is missing";
}
}

我不想在我的端点中使用此 validator ,因为我需要从数据库中获取要验证的对象,然后对其调用验证,因此我需要从我的服务中执行此操作。

您能指导我如何实现这一目标吗?

最佳答案

在类中使用验证注解,但不要在请求体上使用@Valid,那么spring将不会验证你的类。

public class MyClass{

@NotNull
private Integer id;

@NotBlank
private String data;
}

首先是 Autowiring validator

@Autowired
private final Validator validator;

然后在需要时有条件地使用 validator 进行类验证。

if(isValidate) {
Set<ConstraintViolation<MyClass>> violations = validator.validate(myClassObj);
if (!violations.isEmpty()) {
throw new ConstraintViolationException(new HashSet<ConstraintViolation<?>>(violations));
}

}

关于java - 我可以在 Spring Boot 中从服务中显式调用自定义 validator 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61591228/

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