实现ibatis手动控制加载sqlmap文件,终于不用重启应用了

本文介绍了一种方法,通过修改SqlMapClientFactoryBean、SqlMapExecutorDelegate和SqlMapClientImpl,实现手动刷新ibatis的sqlmap配置,从而避免每次修改后都需要重启应用。作者提供了实现该功能的四个文件下载链接,并建议结合之前的《java webapp嵌入jetty》文章,创建一个便捷的开发环境。
摘要由CSDN通过智能技术生成

大学毕业之后到公司,就是velocity+springMVC+srping+ibatis,所以一直在用ibatis做持久层,其他的几个框架也都是稍有了解。

好了屁话少说进入正题:之前有写一篇文章 《java webapp嵌入jetty》 为的就是能快速开发,直接在eclipse做debug很是方便。但是呢,用了ibatis,在sqlmap中写了sql,如果每次修改了sqlmap,那么就要每次都重启应用才行,使用起来很是蛋疼,如果项目小,也就是分分钟的事,如果工程足够大,那么重启一次就够受了!

于是就在考虑,能否每次手动来控制ibatis重新加载已经修改好的sqlmap呢?这就可以不用重启了。

答案肯定是可以的~ 毕竟在spring做bean初始化的时候就会加载ibatis的sqlmap,所以只要我们找到对应的代码,然后做出一些调整就可以实现重新加载了。

OK,看代码~~

首先SqlmapClientFactoryBean是spring给ibatis做的适配,那么我们就要从这个类看起。

可以看到ibatis的sqlmapClient是通过configParser返回的。

在new SqlMapConfigParser()的时候,由于以下的引用关系。

SqlMapConfigParser--XmlParserState--SqlMapConfiguration---SqlMapExecutorDelegate

SqlMapConfigParser 将上面的类初始化,并且在SqlMapConfiguration初始化的时候,将new的SqlMapExecutorDelegate赋值给SqlMapClientImpl</
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值