Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
来源:互联网 发布:bluecloud 新域名 编辑:程序博客网 时间:2024/05/22 08:18
之前一直使用mybatis+mybatis-spring-1.1.1,系统升级mybatis后使用
1.1.1中代码片段为:
mybatis-spring-1.2.0,
再其它配置均为修改的情况下运行出错:
Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
从SqlSessionDaoSupport 这个类的源码中可以看出,原因是mybatis-spring-1.2.0
中取消了自动注入SqlSessionFactory 和 SqlSessionTemplate.
- </pre><pre name="code" class="java">/**
- * Convenient super class for MyBatis SqlSession data access objects.
- * It gives you access to the template which can then be used to execute SQL methods.
- * <p>
- * This class needs a SqlSessionTemplate or a SqlSessionFactory.
- * If both are set the SqlSessionFactory will be ignored.
- * <p>
- * {code Autowired} was removed from setSqlSessionTemplate and setSqlSessionFactory
- * in version 1.2.0.
- *
- * @see #setSqlSessionFactory
- * @see #setSqlSessionTemplate
- * @see SqlSessionTemplate
- * @version $Id$
- */
- public abstract class SqlSessionDaoSupport extends DaoSupport {
- private SqlSession sqlSession;
- private boolean externalSqlSession;
- public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
- if (!this.externalSqlSession) {
- this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
- }
- }
- public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
- this.sqlSession = sqlSessionTemplate;
- this.externalSqlSession = true;
- }
- ……
- }
- public abstract class SqlSessionDaoSupport extends DaoSupport {
- private SqlSession sqlSession;
- private boolean externalSqlSession;
- @Autowired(required = false)
- public final void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
- if (!this.externalSqlSession) {
- this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
- }
- }
- @Autowired(required = false)
- public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
- this.sqlSession = sqlSessionTemplate;
- this.externalSqlSession = true;
- }
- ……
- }
可能是为了解决多数据源的问题吧,取消了自动注入。没用到多数据源,不太关心这个。
解决方案:因为我们dao层是继承于一个dao基类,所以只要在这个基类中注入任意一个属性即可。SqlSessionFactory在spring配置文件中已经配置。
- public class CommonDao extends SqlSessionDaoSupport {
- @Resource
- public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
- super.setSqlSessionFactory(sqlSessionFactory);
- }
0 0
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- 解决Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- 解决 Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required问题
- sqlSessionFactory无法注入,报Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are require
- SpringMVC+MyBatis,连接池采用druid,启动报错Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- 解决Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate ar
- sqlSessionFactory和sqlSessionTemplate
- Bean property 'sqlSessionTemplate' is not writable or has an invalid setter method. Does the paramet
- android 常用到的shape属性(填充与描边)
- 点击状态栏UIScrollView不会回到顶部
- 前端基础知识总结
- 【蓝桥杯】【神奇算式】
- ios imageWithContentsOfFile:path 图片不显示
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Linux服务器性能数据收集【sar、pidstat、iostat、mpstat、sadf、sadc】
- idea @Override is not allowed when implementing interface method
- Linux/error.h中的错误对应(include/asm-generic/(errno.h)、(errno-base.h))
- [LeetCode] Implement strStr()
- Apex系统自带的函数
- 美橙互联主机评测
- NSTimer导致的内存泄露,找了好久的问题
- 用readn与written实现解决粘包问题