在mybatis-spring 1.2.0中自动装配

时间:2013-07-05 17:37:01

标签: spring mybatis

Javadoc到SqlSessionDaoSupport班说:

  

... @ Autowired已从setSqlSessionTemplate中移除   版本1.2.0中的setSqlSessionFactory。

为什么?在这种情况下,我必须手动将sqlSessionFactory设置为我的daos并测试类(我使用dbUnit进行持久性测试)

1 个答案:

答案 0 :(得分:2)

根据此问题删除了

@Autowiredhttps://code.google.com/p/mybatis/issues/detail?id=763

作为通用目标框架,MyBatis不应该强制断言,例如“ApplicationContext中只有一个sqlSessionFactory”,这就是删除@Autowired的原因。

作为一种解决方法,您可以编写自己的MyAppSqlSessionDaoSupport SqlSessionDaoSupport,并使用

覆盖setSqlSessionFactory(...)
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
  if (!this.externalSqlSession) {
    this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
  }
}

然后,让您的DAO延伸MyAppSqlSessionDaoSupport而不是SqlSessionDaoSupport