6. 解析plugins节点
插件是 MyBatis 提供的一个拓展机制,通过插件机制我们可在 SQL 执行过程中的某些点上做一些自定义操作。
实现一个插件需要比简单,首先需要让插件类实现 Interceptor接口。然后在插件类上添加@Intercepts 和@Signature 注解,用于指定想要拦截的目标 方法。MyBatis 允许拦截下面接口中的一些方法:
- Executor: update,query,flushStatements,commit,rollback,getTransaction,close,isClosed
- ParameterHandler: getParameterObject,setParameters
- ResultSetHandler: handleResultSets,handleOutputParameters
- StatementHandler: prepare,parameterize,batch,update,query
比较常见的插件有分页插件、分表插件等
实例:
1 | <plugins> |
解析过程如下:
1 | private void pluginElement(XNode parent) throws Exception { |
解析的过程还是比较简单的。首先是获取配置,然后再解析拦截器类型,并实例化拦截器。最后向拦截器中设置属性,并将拦截器添加到 Configuration 中。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的生活小站!