PS:之前使用的是mybatis的1.0.2版,发现最新的版本1.2.2已经修改了这个问题
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
if (this.processPropertyPlaceHolders) {
processPropertyPlaceHolders();
}
ClassPathMapperScanner scanner = new ClassPathMapperScanner(registry);
scanner.setAddToConfig(this.addToConfig);
scanner.setAnnotationClass(this.annotationClass);
scanner.setMarkerInterface(this.markerInterface);
scanner.setSqlSessionFactory(this.sqlSessionFactory);
scanner.setSqlSessionTemplate(this.sqlSessionTemplate);
scanner.setSqlSessionFactoryBeanName(this.sqlSessionFactoryBeanName);
scanner.setSqlSessionTemplateBeanName(this.sqlSessionTemplateBeanName);
scanner.setResourceLoader(this.applicationContext);
scanner.setBeanNameGenerator(this.nameGenerator);
scanner.registerFilters();
scanner.scan(StringUtils.tokenizeToStringArray(this.basePackage, ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS));
}
今天在开发过程中发现mybatis和spring集成的时候。在mybatis写了mapper时,用spring配置的dataSource数据库连接池中使用${xxx}形式会报错误,从错误的提示中看出是数据库连接池中${xxx}并没有替换。
查询源代码发现mybatis与spring集成时,设置的xml的mapper扫描使用的是spring的BeanDefinitionRegistryPostProcessor
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePac