说到Mybatis插件,我们先来搞清楚什么是插件。插件是一种遵循一定规范的应用程序接口编写出来的程序,其只能运行在程序规定的系统平台下,而不能脱离指定的平台单独运行。插件必须依赖于应用程序才能发挥自身功能,仅靠插件是无法正常运行的。相反地,应用程序并不需要依赖插件就可以运行,这样一来,插件就可以加载到应用程序上并且动态更新而不会对应用程序造成任何改变。
Mybatis 中提供了一套插件系统供开发者使用,以便其能介入 Mybatis 的运行。例如比较出名的 Mybatis 分页插件 Mybatis-PageHelper 就是利用 Mybatis 提供的插件机制来实现的。
通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现Interceptor接口,并指定想要拦截的方法签名即可。
@Intercepts({@Signature(
type= Executor.class,
method = "query",
args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})})
public class ExamplePlugin implements Interceptor {
public Object intercept(Invocation invocation) throws Throwable {
// implement pre processing if need
Object returnObject = invocation.proceed();
// implement post processing if need
return returnObject;
}
}
编写好插件之后,就可以在配置文件进行配置。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置插件 -->
<plugins>
<plugin interceptor="ExamplePlugin"/>
</plugins>
<mappers>
<mapper resource="mapper/Test.xml"/>
</mappers>
</configuration>
而且,在在某种程度上,使用Mybatis插件极大地方便了我们使用Mybatis框架从事相关的开发工作,帮助开发人员减轻工作量,提高效率。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54