MapperScannerConfigurer不 property-placeholder
关于org.mybatis.spring.mapper.MapperScannerConfigurer不支持 property-placeholder 参考了http://www.oschina.net/question/188964_32305,才解决了自己的问题。
先注释红色部分,我是之前写的。然而就会产生错误,说找不到${driverClassName}
java.lang.ClassNotFoundException: ${driverClassName}
后面搜索一番,说:
“在spring里使用org.mybatis.spring.mapper.MapperScannerConfigurer 进行自动扫描的时候,设置了sqlSessionFactory 的话,可能会导致PropertyPlaceholderConfigurer失效,也就是用${jdbc.username}这样之类的表达式,将无法 获取到properties文件里的内容。 导致这一原因是因为,MapperScannerConigurer实际是在解析加载bean定义阶段的,这个时候要是设置 sqlSessionFactory的话,会导致提前初始化一些类,这个时候,PropertyPlaceholderConfigurer还没来得及替 换定义中的变量,导致把表达式当作字符串复制了。 但如果不设置sqlSessionFactory 属性的话,就必须要保证sessionFactory在spring中名称一定要是sqlSessionFactory ,否则就无法自动注入。又或者直接定义 MapperFactoryBean ,再或者放弃自动代理接口方式。
然后在spring 3.1.1以上版本是可以这样的。”
“改用sqlSessionFactoryBeanName注入就没有问题(不要使用sqlSessionFactory属性注入,使用 sqlSessionFactoryBeanName注入),因为这时不会立即初始化sqlSessionFactory,传入的只是名字,非bean, 所以不会引发提前初始化问题。”
所以我的问题解决了,只要注释红色圈圈的上面一行并且解开红色框所在行的注释就行了。 其中注意的是属性名:sqlSessionFactoryBeanName不是随意来的。
最新文章
- SQL TOP 子句、SQL LIKE 操作符、SQL 通配符
- chrome启用 NPAPI [转]
- 使用Lucene开发自己的搜索引擎
- Effective C++ 之 Item 2:尽量以 const, enum, inline 替换 #define
- 【bzoj1043】下落的圆盘
- [ASP.NET] 使用Loading遮罩防止使用者重複點擊
- 机器学习真的可以起作用吗?(3)(以二维PLA为例)
- 1002 GTY's birthday gift
- mvc_ajax_for form
- NYoj 685 查找字符串
- Swift中文教程(一)--欢迎来到Swift的世界
- 最新Node.js 资源汇总
- C++中的内联函数和C中的宏定义的区别
- 联想扬天3900c电脑BIOS设置U盘启动图文教程
- nodejs 实现文件拷贝
- border-radius图解
- AssetManager
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
- Spring MVC 处理JSON 使用HttpMessageConveter
- 【Unity笔记】将角色的碰撞体朝向鼠标点击方向——角色朝向鼠标
热门文章
- hibernate.cfg.xml的详细解释
- Error:Unable to tunnel through proxy. Proxy returns ";HTTP/1.1 400 Bad Request";
- react-event-pooling
- BZOJ 2306 幸福路径(DP)
- BZOJ 1191 超级英雄(二分图匹配)
- Select-poll-epoll-简介
- 【原创】U盘插入磁盘显示脱机解决
- 【转】C# Datatable排序与取前几行数据
- 【题解】洛谷9月月赛加时赛 —— Never·island
- BZOJ1030:[JSOI2007]文本生成器——题解