Я использую Spring 3.1 и имею следующую конфигурацию Spring, где я явно создаю LocalValidatorFactoryBean
, используя свой собственный ValidationMessageSource
.У меня Hibernate Validator 4.1 в моем пути к классам.
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>ValidatorMsgID</value>
</list>
</property>
</bean>
<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="validationMessageSource" ref="messageSource"/>
</bean>
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"/>
Однако я заметил, что LocalValidatorFactoryBean
создается дважды путем нажатия на отладку в классе afterPropertiesSet
.Первый раз - для явного бина, который я определил в весеннем конфиге, однако после этого тот же класс снова неявно создается экземпляром класса DefaultListableBeanFactory
- очевидно, на этот раз без validationMessageSource
.Поэтому кажется, что когда Spring действительно использует LocalValidatorFactoryBean
, он использует тот, который по умолчанию имеет Hibernates messagesource
, а не тот, который я указал.кажется, что это вызвано mvc:annotation-driven
У меня есть в весеннем конфиге.Любые указатели все равно помогут