SSM-Mybatis-插件-插件接口
要使用Mybatis中的插件,就必须实现接口Interceptor,该接口如下:
public interface Interceptor {
Object intercept(Invocation var1) throws Throwable;
default Object plugin(Object target) {
return Plugin.wrap(target, this);
}
default void setProperties(Properties properties) {
}
}
- intercept:它将直接覆盖拦截对象原有的方法,因此它是插件的核心方法,它里面有个参数Invocation对象,通过它可以反射调度原来对象的方法
- plugin:target参数是被拦截的对象,作用是给被拦截对象生成一个代理对象,并返回它。Mybatis中,提供org.apache.ibatis.plugin中的wrap静态方法生成代理对象,一般都会使用他生成代理对象,也可以自定义
- setProperties:运行plugin元素中配置所需参数,方法在初始化时就会被调用一次,然后把插件对象存入到配置中,以便去除
这是一个模板模式。