@@ -58,31 +58,37 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
5858 @ Override
5959 public void registerBeanDefinitions (AnnotationMetadata importingClassMetadata ,
6060 BeanDefinitionRegistry registry ) {
61- if (this .beanFactory == null ) {
62- return ;
61+ BeanDefinition definition = getAutoConfiguredValidator (registry );
62+ if (definition != null ) {
63+ definition .setPrimary (!hasPrimarySpringValidator (registry ));
6364 }
64- if (!registry .containsBeanDefinition (VALIDATOR_BEAN_NAME )) {
65- return ;
66- }
67- BeanDefinition def = registry .getBeanDefinition (VALIDATOR_BEAN_NAME );
68- if (def != null
69- && this .beanFactory .isTypeMatch (VALIDATOR_BEAN_NAME , LocalValidatorFactoryBean .class )
70- && def .getRole () == BeanDefinition .ROLE_INFRASTRUCTURE ) {
71- def .setPrimary (!hasPrimarySpringValidator (registry ));
65+ }
66+
67+ private BeanDefinition getAutoConfiguredValidator (BeanDefinitionRegistry registry ) {
68+ if (registry .containsBeanDefinition (VALIDATOR_BEAN_NAME )) {
69+ BeanDefinition definition = registry .getBeanDefinition (VALIDATOR_BEAN_NAME );
70+ if (definition .getRole () == BeanDefinition .ROLE_INFRASTRUCTURE && isTypeMatch (
71+ VALIDATOR_BEAN_NAME , LocalValidatorFactoryBean .class )) {
72+ return definition ;
73+ }
7274 }
75+ return null ;
76+ }
77+
78+ private boolean isTypeMatch (String name , Class <?> type ) {
79+ return this .beanFactory != null && this .beanFactory .isTypeMatch (name , type );
7380 }
7481
7582 private boolean hasPrimarySpringValidator (BeanDefinitionRegistry registry ) {
7683 String [] validatorBeans = BeanFactoryUtils .beanNamesForTypeIncludingAncestors (
7784 this .beanFactory , Validator .class , false , false );
7885 for (String validatorBean : validatorBeans ) {
79- BeanDefinition def = registry .getBeanDefinition (validatorBean );
80- if (def != null && def .isPrimary ()) {
86+ BeanDefinition definition = registry .getBeanDefinition (validatorBean );
87+ if (definition != null && definition .isPrimary ()) {
8188 return true ;
8289 }
8390 }
8491 return false ;
8592 }
8693
8794}
88-
0 commit comments