验证
默认情况下,如果存在 Bean Validation
在 Classpath(例如,Hibernate Validator)上,LocalValidatorFactoryBean
是
注册为全局验证器以用于@Valid
和@Validated
on controller 方法参数。
您可以自定义全局Validator
实例,作为
以下示例显示:
-
Java
-
Kotlin
-
Xml
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Override
public Validator getValidator() {
Validator validator = new OptionalValidatorFactoryBean();
// ...
return validator;
}
}
@Configuration
class WebConfiguration : WebMvcConfigurer {
override fun getValidator(): Validator {
val validator = OptionalValidatorFactoryBean()
// ...
return validator
}
}
<mvc:annotation-driven validator="globalValidator"/>
请注意,您也可以注册Validator
实现,如下所示
示例显示:
-
Java
-
Kotlin
@Controller
public class MyController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.addValidators(new FooValidator());
}
}
@Controller
class MyController {
@InitBinder
fun initBinder(binder: WebDataBinder) {
binder.addValidators(FooValidator())
}
}
如果您需要LocalValidatorFactoryBean 注入某个位置,创建一个 bean 并
标记@Primary 以避免与 MVC 配置中声明的冲突。 |