Spring 3.0 ドキュメントのセクション5.7.4.3で説明されているように、Web アプリケーションの検証を実装しようとしました。
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator">
<bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
</property>
</bean>
</property>
</bean>
依存関係として hibernate-validator を追加し、すべて問題ないように見えますが、Web アプリを起動すると次のエラーが発生します。
org.springframework.beans.NotWritablePropertyException:
Invalid property 'validator' of bean class
[org.springframework.web.bind.support.ConfigurableWebBindingInitializer]:
Bean property 'validator' is not writable or has an invalid setter method.
Does the parameter type of the setter match the return type of the getter?
API を見ると、何かが間違っていることは明らかです。を期待しながらLocalValidatorFactoryBean
実装します。javax.validation.Validator
ConfigurableWebBindingInitializer.setValidator()
org.springframework.validation.Validator
これに対する解決策はありますか?
編集
これは、Spring アプリケーション コンテキストでの (JSR-303) セットアップの中心 的な
javax.validation
クラスです。javax.validation.ValidationFactory
Validator
Validator
ValidatorFactory
以下でアレックス・マーシャルが述べたように、これは当てはまりません。LocalValidatorFactoryBean
のみを実装しjavax.validation.Validator
ます。
LocalValidatorFactoryBean
拡張しSpringValidatorAdapter
ますが、これは を実装し org.springframework.validation.Validator
ます。