sqlSessionFactory无法注入,报Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
来源:互联网 发布:xp系统显示网络有重名 编辑:程序博客网 时间:2024/06/08 07:46
转载源为:http://www.cnblogs.com/hawk0035/p/3337283.html?utm_source=tuicool
之前一直使用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
/** * 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中代码片段为:
1 public abstract class SqlSessionDaoSupport extends DaoSupport { 2 3 private SqlSession sqlSession; 4 5 private boolean externalSqlSession; 6 7 @Autowired(required = false) 8 public final void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { 9 if (!this.externalSqlSession) {10 this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);11 }12 }13 14 @Autowired(required = false)15 public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {16 this.sqlSession = sqlSessionTemplate;17 this.externalSqlSession = true;18 }19 ……20 21 }
可能是为了解决多数据源的问题吧,取消了自动注入。没用到多数据源,不太关心这个。
解决方案:因为我们dao层是继承于一个dao基类,所以只要在这个基类中注入任意一个属性即可。SqlSessionFactory在spring配置文件中已经配置。
1 public class CommonDao extends SqlSessionDaoSupport {2 @Resource3 public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){4 super.setSqlSessionFactory(sqlSessionFactory);5 }
0 0
- sqlSessionFactory无法注入,报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
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required问题
- SpringMVC+MyBatis,连接池采用druid,启动报错Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Property 'sqlSessionFactory' or 'sqlSessionTemplate' are require
- 解决Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate ar
- sqlSessionFactory和sqlSessionTemplate
- java.lang.IllegalArgumentException: Property 'sqlSessionFactory'
- Android开发-自定义View-AndroidStudio(十二)仿ViewPager(2)
- 电脑连接电视以及电视盒子
- Codoforces 29E
- 【OpenCV学习笔记 018】SIFT特征提取分析和DoG角点检测
- hibernate一级缓存session
- sqlSessionFactory无法注入,报Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
- Realm之一步上位(基于本地Realm数据库的Android图书馆管理系统)
- 从C#学Javascript笔记(四)
- 一个多线程synchronized引发的问题思考
- 大型网站架构系列:电商网站架构案例
- Android:新浪微博分享多个页面回调不能直接回到调用的Activity问题
- eclipse 下代码中的注释乱码解决方案
- Spring AOP + AspectJ framework
- 填数字