検証
デフォルトでは、Bean バリデーションがクラスパスに存在する場合(たとえば、Hibernate Validator)、LocalValidatorFactoryBean
は、コントローラーメソッドの引数の @Valid
および @Validated
で使用するグローバルバリデーターとして登録されます。
次の例に示すように、グローバル 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 をどこかに挿入する必要がある場合は、MVC 構成で宣言されたものとの競合を避けるために、Bean を作成し、@Primary でマークします。 |