mybatis-插件and-pagehelp
2021-01-18 19:26:08 13 举报
pagehelp
作者其他创作
大纲/内容
PageMethod.startPage
interceptor.intercept (Invocation)
PageHelper.getLocalPage()
插件的自己实现
拦截query方法
PageInterceptor
interceptpluginsetProperties
wrap
Dialect的实现类PageHelper
分页信息缓存在线程本地变量中
Plugin
Object wrap()//创建代理Object invoke()//插件执行逻辑
interceptorChain.pluginAll(executor)
InvocationHandler
invoke()
interceptorChain.addInterceptor(interceptor)
执行时
PageMethod.setLocalPage
InterceptorChain
List<Interceptor>pluginAll(调用plugin)
(PageParams)pageParams.getPage()
interceptorChain.pluginAll(resultSetHandler)
扩展点,可供插件的使用
interceptorChain.pluginAll(statementHandler)
创建代理对象存在configuration
newResultSetHandler
pagehelper-->PageInterceptor分页插件
@Intercepts({@Signature(type = font color=\"#ff0000\
插件的逻辑
启动时加载配置 newExecutor
proceed可以调用该方法直接执行被拦截的方法
plugin
ThreadLocal<Page> LOCAL_PAGE
interceptorChain.pluginAll(parameterHandler)
Interceptor
newStatementHandler
invoke
启动时pluginAll
代理模式
Configuration
获取分页信息
newParameterHandler
Executor
Invocation
query
(Dialect)dialect.skip()
PageHelper.startPage应用中设置分页
启动时加载配置
new font color=\"#ff0000\
0 条评论
下一页