Mybatis的插件运行原理及如何编写一个插件
作者:飞翔的佩奇
这篇文章主要介绍了Mybatis的插件运行原理及如何编写一个插件 ,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
Mybatis的插件运行原理
Mybatis 只支持针对 ParameterHandler、ResultSetHandler、StatementHandler、Executor这4种接口的插件,Mybatis 使用JDK 的动态代理,为需要拦截的接口生成代理对象以实现接口方法拦截功能,每当执行这4种接口对象的方法时,就会进入拦截方法,具体就是 lnvocationHandler 的 invoke0 方法,拦截那些你指定需要拦截的方法。
编写插件
实现 Mybatis 的 Interceptor 接口并复写 intercept0方法,然后在给插件编写注解,指定要拦截哪一个接口的哪些方法即可,在配置文件中配置编写的插件。
@Intercepts ({@signature(type = StatementHandler.class, method = "query", args = {Statement.class , ResultHandler.class}), @signature(type = StatementHandler.class, method = "update" args = {statement.class}), @signature(type = StatementHandler.class, method = "batch", args = {statement.class })}) Component invocation.proceed()执行具体的业务逻辑
到此这篇关于Mybatis的插件运行原理及如何编写一个插件的文章就介绍到这了,更多相关Mybatis插件运行原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!