Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
2015-03-18 21:14
435 查看
之前一直使用mybatis+mybatis-spring-1.1.1,系统升级mybatis后使用
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; } …… }1.1.1中代码片段为:
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); }原文: http://www.cnblogs.com/hawk0035/p/3337283.html?utm_source=tuicool
相关文章推荐
- 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
- SpringMVC+MyBatis,连接池采用druid,启动报错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
- Spring和Mybatis整合过程中遇到的Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required的异常
- sqlSessionFactory无法注入,报Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- 解决Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are require
- 解决Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate ar
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Bean property 'sqlSessionTemplate' is not writable or has an invalid setter method. Does the paramet
- 今天出现这个错误:'sessionFactory' or 'hibernateTemplate' is required
- SSH全注解方式遇到问题sessionFactory or hibernateTemplate is required