0
点赞
收藏
分享

微信扫一扫

mybatis3与spirng3配置文件中的一个坑

Gascognya 2022-06-17 阅读 66

使用spring3.2、springmvc、mybatis3.2搭建框架时,使用了mybatis-spring-1.2.jar这个版本jar包,结果tomcat启动时始终提示如下错误:

Caused by:java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or'sqlSessionTemplate'

 

最终,在网上发现是mybatis3与spirng3配置文件中的一个坑。

当你使用1.2.0的jar包时候,mybatis-spring的这个基类不会再直接将spring配置文件中配好的sqlSessionFactory 或者 sqlSessionTemplate注入到这个基类中,而在使用时候,SqlSessionDaoSupport的方法

protectedvoid checkDaoConfig() {

    notNull(this.sqlSession,"Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required");

  }

就会抛出异常。

 

解决方法:

在BaseDaoImpl继承SqlSessionDaoSupport后,显示的重写setSqlSessionTemplate或setSqlSessionFactory方法。如果在application.xml中配置的是sqlSessionFactory,那么就重写setSqlSessionFactory,否则重写setSqlSessionTemplate。



public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao{

@Autowired
public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
super.setSqlSessionTemplate(sqlSessionTemplate);
}

@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
super.setSqlSessionFactory(sqlSessionFactory);
}
}


注:一定要加上@Autowired注解。


举报

相关推荐

0 条评论