目标

MyBatis Mapper文件动态重新加载。 当mybatis的xml文件被修改后,不用重启tomcat,就能实时加载mybatis的xml文件,提交工作效率。

背景

在使用FDP进行日常开发时,常常需要修改mybatis的xml文件,每次修改后都要重启tomcat才能生效,好麻烦好慢阿。

核心功能

自动热加载被修改的mybatis的xml文件

实现类MapperRefresh:


MapperRefresh.java 实现MyBatis Mapper文件动态重新加载,只加载修改的文件,在线程中定时执行检查。
SqlSessionFactoryBean.java 覆盖mybatis-spring-1.3.1中的核心类,在项目启动时同时启动MapperRefresh中的刷新线程
mybatis-refresh.properties 配置文件,定检查的频次。

注:SqlSessionFactoryBean.java 来自mybatis-spring-1.3.1,只在536行添加了“启动刷新MapperXML定时器”
第536行添加的代码如下:
// ThinkGem 启动刷新MapperXML定时器(有助于开发者调试)。
new MapperRefresh(this.mapperLocations, configuration).run();

tomcat启动时会在控制出输出以下信息
========= Enabled refresh mybatis mapper =========
表示本功能已经在工作了。


参考文章: http://thinkgem.iteye.com/blog/2304557