Spring-mybatis整合 获取properties 创建SQLSessionFactory失败
来源:互联网 发布:中国广电网络全国整合 编辑:程序博客网 时间:2024/06/06 13:04
代码:
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.MySQL.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/wzz" /><property name="username" value="***" /><property name="password" value="**" /></bean><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"></property><property name="configLocation" value="/mybatis.xml" /></bean>
测试类:
输出结果:
如果想加载properties 配置文件的方式读取 dataSource Bean:
这时,你会发现没有问题;会得到数据库连接,但是加上SQLSessionFactory的话就会报错:
报错信息:
提示很明显:创建初始化的SQLSessionFactory失败,因为dataSource加载失败!!什么原因呢?
找了好久终于发现:
MapperScannerConigurer实际是在解析加载bean定义阶段的,这个时候要是设置sqlSessionFactory的话,会导致提前初始化一些类,这个时候,PropertyPlaceholderConfigurer还没来得及替换定义中的变量,导致把表达式当作字符串复制了,解决的办法如下:
方法一:
修改<property name="sqlSessionFactory" ref="sqlSessionFactory"/>为
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
原理:使用sqlSessionFactoryBeanName注入,不会立即初始化sqlSessionFactory, 所以不会引发提前初始化问题。
方法二:
直接删掉<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
注意:在没有配置这一行时,必须配置一个以sqlSessionFactory命名的org.mybatis.spring.SqlSessionFactoryBean。
阅读全文
0 0
- Spring-mybatis整合 获取properties 创建SQLSessionFactory失败
- Spring-mybatis整合 获取properties 创建SQLSessionFactory失败
- Mybatis与Spring整合(Mybatis的sqlSessionFactory交由spring容器来创建)
- <转>myBatis-spring整合之sqlsessionfactory
- Spring-mybatis整合配置错误,显示不能创建spring配置文件中的sqlSessionFactory的Bean
- 配置SqlSessionFactory,整合Mybatis
- 配置SqlSessionFactory,整合Mybatis
- Mybatis SqlSessionFactory创建过程
- mybatis创建SqlSessionFactory
- spring mybatis sqlSessionFactory
- mybatis与spring集成中SqlSessionFactory创建流程
- spring SqlSessionFactoryBean创建SqlSessionFactory
- spring SqlSessionFactoryBean创建SqlSessionFactory
- MyBatis核心SqlSessionFactory的创建
- MyBatis核心SqlSessionFactory的创建
- MyBatis核心SqlSessionFactory的创建
- Mybatis - 获取SqlSessionFactory和SqlSession
- Mybatis 单例获取SqlSessionFactory
- USB基本术语
- MongoDB Replica set 集群搭建
- linux线程退出正确姿势demo
- 中文字符ASCII码和NSString相互转换
- 1949年的国庆节(10月1日)是星期六.......
- Spring-mybatis整合 获取properties 创建SQLSessionFactory失败
- 使用EXCEL画图的简要方法
- wfingerdemo指纹解锁
- 关于jQ中$(selector).data(name,value)方法的使用
- linux每天一个命令
- 如何下载谷歌矢量高程等高线
- Android微信授权app登陆
- iOS
- 嵌入式笔试题(1)