此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
验证
默认情况下,如果存在 Bean Validation
在类路径上(例如,Hibernate Validator),则LocalValidatorFactoryBean
是
注册为全局验证器,用于@Valid
和@Validated
on 控制器方法参数。
您可以自定义全局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 配置中声明的冲突。 |