spring 整合mybatis配置 MapperScannerConfigurer,无法读配置文件错误
2017-06-05 14:57
741 查看
spring 集成 mybatis 时,配置自动映射dao接口和mapper.xml 的关系,使用org.mybatis.spring.mapper.MapperScannerConfigurer 代理来实现。但是配置的时候,启动总是报数据库无法读取配置文件的错误
Caused by: java.lang.NumberFormatException: For input string: “${pool.idleConnectionTestPeriodInMinutes}”
根据报错提示 是
这里配置的问题,然后去看源码
看到这里有2个配置
private SqlSessionFactory sqlSessionFactory;
private String sqlSessionFactoryBeanName;
在我的配置文件中使用的是
这个时候 问题就发现了,MapperScannerConfigurer 执行的时候,如果指定了 sqlSessionFactory 实体类,就需要sqlSessionFactory 已经成功加载完成,但是 数据库配置引用类
是在 MapperScannerConfigurer 执行后才能执行的。所以就报错了。
这里我只需要改变MapperScannerConfigurer 加载类就可以了
如下
指定sqlSessionFactoryBeanName 就搞定了
Caused by: java.lang.NumberFormatException: For input string: “${pool.idleConnectionTestPeriodInMinutes}”
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in class path resource [config/spring/spring-data-config.xml]: Cannot resolve reference to bean 'smkAppSqlSession' while setting bean property 'sqlSessionFactory'; nested exception is org.spri
根据报错提示 是
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactory" ref="smkAppSqlSession" /> <property name="basePackage" value="com.**.dao" /> </bean>
这里配置的问题,然后去看源码
public class MapperScannerConfigurer implements BeanDefinitionRegistryPostProcessor, InitializingBean, ApplicationContextAware, BeanNameAware { private String basePackage; private boolean addToConfig = true; private SqlSessionFactory sqlSessionFactory; private SqlSessionTemplate sqlSessionTemplate; private String sqlSessionFactoryBeanName; private String sqlSessionTemplateBeanName; private Class<? extends Annotation> annotationClass; private Class<?> markerInterface; private ApplicationContext applicationContext; private String beanName; private boolean processPropertyPlaceHolders; private BeanNameGenerator nameGenerator;
看到这里有2个配置
private SqlSessionFactory sqlSessionFactory;
private String sqlSessionFactoryBeanName;
在我的配置文件中使用的是
这个时候 问题就发现了,MapperScannerConfigurer 执行的时候,如果指定了 sqlSessionFactory 实体类,就需要sqlSessionFactory 已经成功加载完成,但是 数据库配置引用类
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:config/env/env_dev/dataSource.properties</value> </list> </property> </bean>
是在 MapperScannerConfigurer 执行后才能执行的。所以就报错了。
这里我只需要改变MapperScannerConfigurer 加载类就可以了
如下
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="smkAppSqlSession" /> <property name="basePackage" value="com.**.dao" /> </bean>
指定sqlSessionFactoryBeanName 就搞定了
相关文章推荐
- 关于Spring整合mybatis时配置MapperScannerConfigurer的问题
- IDEA中解决spring整合mybatis后使用MapperScannerConfigurer扫描mapper包时“ Invalid bound statement (not found)”错误
- mybatis整合spring使用MapperScannerConfigurer配置问题
- mybatis-spring集成:配置多数据库源中遇到的问题--MapperScannerConfigurer配置
- Spring整合Mybatis(一)------MapperScannerConfigurer
- Spring/mybatis整合之MapperScannerConfigurer和MapperFactoryBean区别
- Spring、MyBatis的整合数据映射器类(UserMapper->iocContext.xml)配置文件详解
- spring-mybatis整合-MapperScannerConfigurer
- 关于Spring与mybatis整合无法读取配置文件的问题
- Spring整合Mybatis(MapperScannerConfigurer方式)
- 解决“Spring 使用MapperScannerConfigurer无法读取*.properties文件"的问题
- Spring+Mybatis整合读取Jar中的mapper配置文件
- 关于Spring+MyBatis的MapperScannerConfigurer无法加载place-holder属性问题分析
- Spring-mybatis整合配置错误,显示不能创建spring配置文件中的sqlSessionFactory的Bean
- mybatis的mapper文件错误,引申到spring无法加载bean
- spring和mybatis整合的关键:org.mybatis.spring.mapper.MapperScannerConfigurer 类作用
- Spring与Mybatis整合的MapperScannerConfigurer
- 解决整合spring和mybatis后数据源配置文件读取错误,错误提示数据库用户名密码错误。
- spring 整合mybatis时候 MapperScannerConfigure的配置问题
- MapperScannerConfigurer方法整合spring+mybatis