spring3 ibatis SqlMapClient和SqlMapClientTemplate注入的问题
哪位大虾 解释一下 SqlMapClient和SqlMapClientTemplate的区别,看到好多资料 先在Dao里注入template 然后再在Template 里注入 SqlMapClient。有的说是 直接注入SqlMapClient就可以,这两种方式异同何在?
还有一个问题是 在beans.xml 里注入
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="SqlMapConfig.xml"/>
<property name="dataSource" ref="dataSource"></property>
</bean>
然后在dao的bean里引入<ref bean="sqlMapClient"/>
这种方式 OK
如果不用xml去注入dao 改成全注解 并且dao是继承SqlMapDaoSupport的
这个时候 会报错 说 sqlMapClient is required。注解方式怎么解决这个问题呢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我晕,还好搜到你们这个问题 我找好了久了用springMvc+ibatis 结果老是报错说没有“sqlMapClient”
嗯,大家在开发过程中都是这么做的么?还有没有其他办法
@王威 : 我觉得,这样就OK了,只在一个类中定义就可以了。跟XML注入是一样的
恩,现在我也这么弄的。有什么更好的法子,在共享哈
做一个类继承SqlMapClientDaoSupport,之后使用下面代码进行注入:
把类SqlMapClientDaoSupport.java 的源码,改一下改成注入方式,
@Autowired
public final void setSqlMapClient(SqlMapClient sqlMapClient) {
if (!this.externalTemplate) {
this.sqlMapClientTemplate.setSqlMapClient(sqlMapClient);
}
}
因为应用启动时,是先加载classes目录的class文件,再加载jar的class文件。
把类SqlMapClientDaoSupport.java 的源码,改一下改成注入方式,
@Autowired
public final void setSqlMapClient(SqlMapClient sqlMapClient) {
if (!this.externalTemplate) {
this.sqlMapClientTemplate.setSqlMapClient(sqlMapClient);
}
}
因为应用启动时,是先加载classes目录的class文件,再加载jar的class文件。
等待啊
写个注入果然好了!哈哈哈哈!