【MyBatis】MyBatis 的插件有哪几种使用方式?

Mybatis 主要有三种插件的使用方式:

  1. 导入插件类:
    直接在 mybatis-config.xml 中 import 插件类。
<typeAliases>  
    <typeAlias alias="authorizer" type= "com.itzhimei.plugin.AuthorizerPlugin"/>
</typeAliases>

<plugins>
   <plugin interceptor= "authorizer">  
   </plugin> 
</plugins>
  1. 注册插件 class:
<plugins>
    <plugin class= "com.itzhimei.plugin.AuthorizerPlugin"> 
    </plugin>
</plugins>  
  1. 直接使用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 的注册方法不同。