Mybatis:插件原理

哪些对象允许被代理(插件)

Executor、ParameterHandler、StatementHandler、ResultSetHandler

什么时候创建代理对象

Executor sqlSession.openSession的时候被代理
其他3个创建的时候被代理

多个插件的时候,代理执行顺序

代理被代理的顺序:按照定义顺序代理。
如何执行:按照代理顺序倒序invoke()。
责任链模式。

被代理后,调用的是什么方法

intercept()方法
还要实现plugin()方法,保证被包装。

原文地址:https://www.cnblogs.com/fcb-it/p/13276008.html