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更新后出现什么问题

 

你可能感兴趣的:(java开发,web开发,java,springboot,mybatis,mybatisplus,热更新)