码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis插件原理

时间:2019-07-10 16:41:07      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:编写   res   实现类   ack   executor   顺序   ORC   代理   object   

Executor(update、query、flushstatement、commit、rollback、getTransaction)

ParameterHandler(getParameterObject、setParameter、close、isclosed)

ResultSetHandler(handlerResultSets,handlerOutputParameters)

statementHandler(prepare,parameterize,batch,update,query)

1、每个创建出来的对象不是直接返回的,而是interceptorChain.pluginAll(parameterHandler)

2、获取到所有的Interceptor(拦截器)插件需要实现的接口,调用interceptor.plugin(target)返回target包装的对象

3、插件机制:使用插件为目标对象创建一个代理对象(AOP面向切面)

Interceptor(拦截器)拦截目标对象的目标方法的执行

Plugin:包装目标方法:包装,为目标对象创建一个代理对象,插件会创建目标对象的代理对象

插件编写:

1、编写Interceptor的实现类

2、使用@Interceptors注解完成插件签名

3、将写好的插件注册到全局配置文件中

创建动态代理的时候,是按照插件配置顺序创建层层的代理对象,执行目标方法后按照逆向顺序执行

mybatis插件原理

标签:编写   res   实现类   ack   executor   顺序   ORC   代理   object   

原文地址:https://www.cnblogs.com/cye9971-/p/11164640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!