mybatis源码学习:插件定义+执行流程责任链
目录 一、自定义插件流程 二、测试插件 三、源码分析 1、inteceptor在Configuration中的注册 2、基于责任链的设计模式 3、基于动态代理的plugin 4、拦截方法的intercept(invocation) 四、插件开发插件pagehelper 1、引入相关依赖 2、全局配置 3、测试分页 五、插件总结 前文传送门: mybatis源码学习:从SqlSessionFactory到代理对象的生成 mybatis源码学习:一级缓存和二级缓存分析 mybatis源码学习:基于动态代理实现查询全过程 一、自定义插件流程 自定义插件,实现Interceptor接口。 实现intercept、plugin和setProperties方法。 使用@Intercepts注解完成插件签名。 在主配置文件注册插件。 /** * 自定义插件 * Intercepts:完成插件签名,告诉mybatis当前插件拦截哪个对象的哪个方法 * * @author Summerday */ @Intercepts({ @Signature(type = StatementHandler.class, method = "parameterize", args = Statement.class) }) public class MyPlugin implements Interceptor