0
저는 Spring 3.1을 사용하고 있고 명시 적으로 LocalValidatorFactoryBean
을 사용하여 다음 코드를 작성했습니다. ValidationMessageSource
. 나는 내 클래스 경로에 Hibernate Validator 4.1을 가지고있다. DefaultListableBeanFactory가 암시 적으로 LocalValidatorFactoryBean 인스턴스를 생성하는 것을 막는 방법
<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
방법을 쳐서 두 번 생성되는 것으로 나타났습니다. 처음으로 explicite bean에 대한 것은 봄 설정에서 정의했다. 그러나 동일한 클래스가
DefaultListableBeanFactory
클래스에 의해 암시 적으로 다시 인스턴스화되었다는 것을 알았다. 분명히 이번에는
validationMessageSource
이 없었다. 그러므로 Spring이
LocalValidatorFactoryBean
을 사용할 때 내가 지정한 것보다는 기본 최대 절전 모드
messagesource
을 사용하는 것으로 보인다.
이보기가 조금 더 나아진 것은 이것이 mvc:annotation-driven
에 의해 발생하는 것 같습니다. 모든 포인터가 여전히 도움이 될 것입니다.