UnsatisfiedDependencyException: Error creating bean with name 오류

­이주현 (Joo Hyun Lee)·2023년 5월 16일
0
post-thumbnail

오류

에러:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bookValidator': Unsatisfied dependency expressed through field 'beanValidator'; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.validation.Validator' available: expected single matching bean but found 2: org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0,validator

원인

servlet-context.xml

	<beans:bean id="validator"
				class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">  
   		<beans:property name="validationMessageSource" ref="messageSource" />
	</beans:bean>
	
	<beans:bean id="unitsInStockValidator"
				class="com.springmvc.validator.UnitsInStockValidator"/>
	
	<beans:bean id="bookValidator" class="com.springmvc.validator.BookValidator"> 
		<beans:property name = "springValidators">
			<beans:set>
				<beans:ref bean = "unitsInStockValidator"/>
			</beans:set>
		</beans:property>
	</beans:bean>

expected single matching bean but found 2: org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean#0,validator

처음에 정의된 validator과 그 다음에 정의된 bookValidator이 겹쳐서 발생한 문제였다.

해결

validator 부분에 primary="true" 속성을 더한다.

	<beans:bean id="validator" primary="true" 
				class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">  
   		<beans:property name="validationMessageSource" ref="messageSource" />
	</beans:bean>

0개의 댓글