springboot mybatis xml热更新

解决Spring Boot中MyBatis XML配置热更新问题,介绍了一种不依赖IDE插件的方法,通过自定义类实现在开发环境中实时更新XML配置而无需重启应用,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

SpringBoot中使用XML方式整合MyBatis的步骤如下: 1. 配置全局的MyBatis配置文件,在src/main/resources目录下创建mybatis文件夹,并创建sqlMapConfig.xml配置文件。在该文件中可以进行一些MyBatis的全局配置。 2. 创建SpringBoot的核心配置文件application.properties,在src/main/resources目录下创建application.properties文件。在该文件中配置数据库的连接参数以及MyBatis框架的mapper映射文件和全局配置文件的路径。 3. 配置mybatis的全局配置文件路径,通过在application.properties文件中指定mybatis.config-location属性为classpath:mybatis/sqlMapConfig.xml。 4. 配置mapper映射文件的路径,通过在application.properties文件中指定mybatis.mapper-locations属性为classpath:mybatis/mapper/*.xml。 上述步骤可以实现SpringBootMyBatisXML方式整合。在全局配置文件中可以进行一些MyBatis的配置,而mapper映射文件可以指定在指定路径下。 需要注意的是,文件命名需要规范,并且在application.properties文件中的配置路径需要正确指定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringBoot整合Mybatis方式1:使用XML方式整合Mybatis(添加数据、修改数据、删除数据、查询数据)](https://blog.csdn.net/blbyu/article/details/127994902)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Spring Boot整合MyBatis框架(XML文件版)](https://blog.csdn.net/weixin_43978412/article/details/100563987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值