@Valid bean 验证

时间:2021-05-12 11:06:59

标签: java spring spring-boot hibernate

考虑下面显示的两个框架。这里我需要验证bean

控制器

在控制器中,我使用 @Valid 并进行 java 验证。工作正常

@RequestMapping("")
void testIt(@Valid @RequestBody User user){

} 

没有控制器的普通 Spring 应用

这里有什么方法可以进行验证。它不是控制器,@Valid 在这里不起作用。 无论如何要对正常功能使用@Valid 或任何类似类型的验证?

void testIt(@Valid User user){
}

1 个答案:

答案 0 :(得分:0)

您可以通过声明 org.springframework.validation.beanvalidation.MethodValidationPostProcessor 和 org.springframework.validation.beanvalidation.LocalValidatorFactoryBean 类型的 bean 并使用 @Validated 注释来注释包含 testIt() 的类来启用方法验证。

@Validated
@Component
public class TestIt {
  public void testIt(@Valid User user) {
  ...
  }
}

如果调用 testIt() 时发生验证错误,将抛出 ConstraintViolationException。另外,请确保您的类路径中有 Hibernate Validator。