一、基本概要
参见mybatis官方文档:点击打开链接
1. 快速开发;
2. 插件原理实现的主要技术和思想;
3. 为什么插件只支持Executor、StatementHandler、ResultSetHandler、ParameterHandler四种类型?
二、快速开发
mybatis插件开发极易上手,参见第一节中mybatis官方文档中的demo,只需要明白几个概念即可快速开发。
1. 官方示例
@Intercepts({ @Signature(type = Executor.class, method = "update", args = {
MappedStatement.class, Object.class }) })
public class ExamplePlugin implements Interceptor {
public Object intercept(Invocation invocation) throws Throwable {
return invocation.proceed();
}
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
public void setProperties(Properties properties) {
}
}
2. 快速开发步骤
1. 实现Interceptor接口;
2. @Interceptor注解中的注意事项:
a. type是Executor、StatementHandler、ResultSetHandler、ParameterHandler中的一个或多个;
b. method为上述四个类型中定义的方法名;
c. args为b中需要拦截的method的参数类型;
3. 最后,在mybatis-config.xml中声明自定义开发的插件即可;<