mybatis-xmlreload-spring-boot-starter 支持xml文件热更新功能。Spring Boot2.0项目请使用 2.0.5.m3 版本。
分支名称 | Spring Boot版本 | Mybatis Xmlreload版本 |
---|---|---|
main | 3.0.4 | 3.0.5.m3 |
springboot2 | 2.2.7.RELEASE | 2.0.5.m3 |
- 修改 xml 文件的加载逻辑。在普通的 mybatis-spring 项目中,默认只会加载项目编译过后的 xml 文件,也就是 target 目录下的 xml 文件。但是在mybatis-xmlreload-spring-boot-starter中,修改了这一点,它会加载 Maven 项目中 resources 或者 java 目录下的 xml 文件,这样用户对于 resources 或者 java 目录下 xml 文件的修改操作是可以立即触发热加载的。
- 通过 io.methvin.directory-watcher 项目来监听 xml 文件的修改操作,它底层是通过 java.nio 的WatchService 来实现,当我们监听了整个 resources 目录后,xml 文件的修改会立马触发 MODIFY 事件。
- 通过 mybatis-spring 项目原生的 xmlMapperBuilder.parse() 方法重新加载解析修改过后的 xml 文件来保证项目对于 Mybatis 的兼容性处理。
- 在
Spring Boot
项目中,兼容mybatis-spring-boot-starter
2.0及以上版本。 - 兼容
mybatis plus
。
在 Spring Boot3.0 Maven 项目提供坐标地址如下:
<dependency>
<groupId>io.github.wayn111</groupId>
<artifactId>mybatis-xmlreload-spring-boot-starter</artifactId>
<version>3.0.5.m3</version>
</dependency>
在 Spring Boot2.0 Maven 项目提供坐标地址如下:
<dependency>
<groupId>io.github.wayn111</groupId>
<artifactId>mybatis-xmlreload-spring-boot-starter</artifactId>
<version>2.0.5.m3</version>
</dependency>
mybatis-xmlreload-spring-boot-starter 目前只有两个配置属性。
mybatis-xml-reload.enabled
默认是 false, 也就是不启用 xml 文件的热加载功能,想要开启的话通过在项目配置文件中设置mybatis-xml-reload.enabled
为true。mybatis-xml-reload.mapper-locations
需要热加载的 xml 文件路径,这个属性需要手动填写, 跟项目中的mybatis.mapper-locations
保持一致即可。如果是多数据源配置,这里可以用逗号分割填写多个路径。 也可以直接设置xml文件所在目录的绝对路径,例如 file:/E:/GitRepo/newbeemall-pro/src/main/resources/mapper/*.xml 指向的就是项目中xml文件的绝对路径。
# mybatis xml文件热加载配置
mybatis-xml-reload:
# 是否开启 xml 热更新,true开启,false不开启,默认为false
enabled: true
# xml文件路径,可以填写多个,逗号分隔。如果想将xml文件放在指定目录而不是jar包内,可以用file前缀指定本地目录,例如 file:/c/mapper/*.xml
# eg: `classpath:mapper/**/*Mapper.xml,file:/c/mapper/*.xml`
mapper-locations: classpath:mapper/*Mapper.xml
如果有任何问题,欢迎提交Issue或加我微信告知,方便互相交流反馈~ 💘。最后,喜欢的话麻烦给我个star
关注公众号:程序员wayn,每周更新最新技术文章。回复关键字:
- 学习:加群交流,群内问题都会一一解答。
- 开源项目:获取博主自己写的三个开源项目,包含PC、H5商城、后台权限管理系统等。