Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
来源:互联网 发布:js中template 怎么用 编辑:程序博客网 时间:2024/05/22 05:45
最近在项目开发过程搭建框架的时候,总是会被人问到一些莫名其妙的异常问题,现在就张贴一份异常类型的原因和解决方案。
其中有些是自己个人开发经验总结,有些网上借鉴同行高手的见解。希望对遇到同样类型问题的开发者有点帮助。。。
开发环境:sping+springmvc-4.2.x+mybatis-3.1
开发软件:ecplise Mars Release (4.5.0)
异常类型:Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
产生所在:在构建baseDao的时候,继承了SqlSessionDaoSupport。在baseDao的方法中调用sqlSessionFactory来执行sql语句。
异常原因:
原因是mybatis-spring-1.2.0之后的版本
中取消了自动注入SqlSessionFactory 和 SqlSessionTemplate
下面是SqlSessionDaoSupport的源码
package org.mybatis.spring.support;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.dao.support.DaoSupport;
import org.springframework.util.Assert;
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 SqlSession getSqlSession()
{
return this.sqlSession;
}
protected void checkDaoConfig()
{
Assert.notNull(this.sqlSession, "Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required");
}
}
解决方案:在继承了SqlSessionDaoSupport的基类中,添加一下的代码即可:
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
super.setSqlSessionFactory(sqlSessionFactory);
}
手动的子类中注入SqlSessionFactory(或SqlSessionTemplate)。
- 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
- C#读取目录下的某一格式的文件
- C语言中内存分配
- Fm不工作的问题
- 八大排序算法总结
- asp.net 绑定TreeView
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Toolbar中Overflow Menu不显示问题
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 参数估计:文本分析的参数估计方法
- Java基础回顾: "=="和equals()方法的区别
- Linux下的进程类别(内核线程、轻量级进程和用户进程)以及其创建方式--Linux进程的管理与调度(四)
- 13 款惊艳的 Node.js 框架——第1部分
- css hack
- android activity的四种启动模式