springboot mybatis xml热更新

起因是spring-boot-devtools可以更新文件,但是mybatis加载过的xml会有缓存,修改了xml即使更新到部署目录依然需要重启才生效,影响开发效率。

个人不喜欢依赖ide插件的方式实现实现热更新,希望只用类文件就能实现。

之前mybatisplus有一个MybatisMapperRefresh类可以实现xml热更新,在3.x版本移除了,加上这个类现在直接拿来用会报错,网上找了一个老哥的代码结合MybatisMapperRefresh研究了一下,目前勉强能用。

老哥 https://www.cnblogs.com/oskyhg/p/8587701.html

 

demo地址 https://github.com/jht385/sb-dynamic-xml

DynamicXmlConfig 控制使用哪个热更新类,刷新时间,延迟加载时间,生效环境(mp作者建议生产不要用,本身生产环境也不需要吧)

MybatisMapperRefresh 原版+部分修改,细粒度控制刷新的xml。原版精确定位到修改的namespace.id,但是在最新的mb中因为没有清理干净会报错,结合MybatisMapperRefreshAllKill的部分代码做了修改,目前能做到精确更新同时不报错

MybatisMapperRefreshAllKill 是网上老哥的代码,主要是把mybatis所有的相关缓存都清掉然后重新构建,比较粗,留着以防mb更新后出现什么问题

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值