Spring集成ibatis失败,有经验者谈谈。。

来源:百度知道 编辑:UC知道 时间:2024/05/26 02:06:59
这几天一直在看Spring framework2带的jpetstore的Spring与ibatis的集成,然后自己用Spring mvc+ ibatis写了一个小的实验性web程序,诸如datasource, SqlMapClientFactoryBean, SqlMapClient, transactionManager这样的东西全部用Spring注入,这个时候遇到一个问题,怎么取 sqlMapClient出来?包括ibaits参考手册的标准答案都是说用:
String resource = "config/sql-map-config.xml";
Reader reader = Resources.getResourceAsReader (resource);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
这样的方法来取,但是如果是用依赖注入了,为什么还要用reader去取xml文件呢??

这个地方没想明白,求有经验者指导

然后姑且这样配置之,果然报错,表面Exceptions是sqlMapClient.endTransaction()报空,debug后看具体问题好像是取SqlMapClient的sessionScope的时候为空?我不明白这个的具体意思,看源码也没看明白。这个地方也求又经验者指导。

在纠结了两天之后,我放弃了依赖注入,直接在配置文件sqlmapconfig.xml里配置ibatis,然后直接读取,果然ok了,但是这样就没用上Spring的注入了,大家能给点意见么?能说说你们平时用Spring+ibatis是怎么用的么?

谢谢谢谢
@bio1984:
明白了!解决问题了,犯了个很土的错误,就不丢脸了。谢谢,祝你好运。

我想你看的参考手册说的那种配置绝对不是Spring的获取方式,Spring自身有一个ibatis模板类SqlMapClientTemplate,你继承这个类就可以获取你想要的东西,这是一种叫做模板方法的设计模式,Spring使用这种设计模式来管理Dao的通用增删改查方法,很方便。

还有,最好把你的出错信息,以及配置发上来,这样才能更准确的对问题进行定位。