考虑下面显示的两个框架。这里我需要验证bean
控制器
在控制器中,我使用 @Valid 并进行 java 验证。工作正常
@RequestMapping("")
void testIt(@Valid @RequestBody User user){
}
没有控制器的普通 Spring 应用
这里有什么方法可以进行验证。它不是控制器,@Valid 在这里不起作用。 无论如何要对正常功能使用@Valid 或任何类似类型的验证?
void testIt(@Valid User user){
}
答案 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。