Mybatis 主要有三种插件的使用方式:
- 导入插件类:
直接在 mybatis-config.xml 中 import 插件类。
<typeAliases>
<typeAlias alias="authorizer" type= "com.itzhimei.plugin.AuthorizerPlugin"/>
</typeAliases>
<plugins>
<plugin interceptor= "authorizer">
</plugin>
</plugins>
- 注册插件 class:
<plugins>
<plugin class= "com.itzhimei.plugin.AuthorizerPlugin">
</plugin>
</plugins>
- 直接使用class名称:
<plugins>
<plugin>
com.itzhimei.plugin.AuthorizerPlugin
</plugin>
</plugins>
不指定 interceptor 或 class 时,Mybatis 会自己实例化该类。
使用方式一-三完全一样,只是注册插件的方法不同。
使用时,需要实现 Mybatis 的 Interceptor 接口:
public class AuthorizerPlugin implements Interceptor{
// 实现 intercept(Invocation) 方法
}
然后在 intercept() 方法中:
- 调用原始方法 invocation.proceed()
- 在前后做其他处理
Mybatis 通过反射实例化该类,从而实现插件机制。
这就是 Mybatis 插件的三种使用方式。主要差别在于 mybatis-config.xml 的注册方法不同。