dubbo注册中心占位符无法解析问题 (4)

才会在扫描mapper之前,调了一下 processPropertyPlaceHolders()方法。

// org.mybatis.spring.annotation.MapperScannerRegistrar,mybatis-spring 2.0.2及以上版本 void registerBeanDefinitions(AnnotationAttributes annoAttrs, BeanDefinitionRegistry registry, String beanName) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MapperScannerConfigurer.class); builder.addPropertyValue("processPropertyPlaceHolders", true); // 看这里!! Class<!--? extends Annotation--> annotationClass = annoAttrs.getClass("annotationClass"); if (!Annotation.class.equals(annotationClass)) { builder.addPropertyValue("annotationClass", annotationClass); } // ..... } // org.mybatis.spring.annotation.MapperScannerRegistrar,mybatis-spring 2.0.1及以下版本 void registerBeanDefinitions(AnnotationAttributes annoAttrs, BeanDefinitionRegistry registry) { ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry); // ClassPathMapperScanner里面就没有getBeansOfType(PropertyResourceConfigurer.class) Optional.ofNullable(resourceLoader).ifPresent(scanner::setResourceLoader); Class<!--? extends Annotation--> annotationClass = annoAttrs.getClass("annotationClass"); if (!Annotation.class.equals(annotationClass)) { scanner.setAnnotationClass(annotationClass); } // ..... } 4.2、方法二

降低mybatis-spring的版本到 2.0.1 或者 更低版本。

5、 未完待续

到这里,问题就查清楚了,并且解决办法也有了。但真的结束了吗?
木有,合并前的老项目二使用的就是mybatis-spring-2.0.3.jar,但是他没有报【UnknownHostException: ${zk.address}】,也没有自定义MapperScannerConfigurer设置processPropertyPlaceHolders为false
那为什么?
下篇文章分析~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgxyf.html