在最近的项目开发中,遇到需要进行一些缓慢的查询,大型结果和其他异常指标,例如用于监视和监视的MySQL。从操作和维护的角度来看,没有统一的MySQL.Collecting。我使用的方法是通过Mybatis的拦截器拦截器收集指标。在开发中,在几个转弯后最终解决了不能被自定义拦截器拦截的自定义拦截器。
像SpringMVC一样,MyBatis还提供了拦截器来为执行人,SpectionHandler,resulteThandler,parameterHandler实现拦截器功能。
使用时,我们只需要启动org.apache.ibatis.plugin.interceptor类即可实现对相应注释的相应注释,以拦截CRUD操作,如下所示:
SetProperties方法
因为Mybatis框架本身是一个可以独立使用的框架,并且没有像Spring这样的依赖注入。在春季)从应用程序获得。
mybatis-config.xml配置:
在该方法中获取参数:
更新类型操作通常可以拦截查询类型查询SQL不能输入自定义拦截器,从而导致以下源代码。源代码的一部分由下面的公司代码处理。
自定义拦截器拦截器的自定义拦截器的拦截器是执行器执行器4参数查询方法和更新类型方法。因为Mybatis Interceptor称为传输机制(第一个拦截器被执行到下一个拦截设备的特定实现的下一个拦截机制,您可以看到源代码)
更新的操作执行确实输入自定义拦截器,但是查询操作总是通过跟踪源代码找到。
pageHelper插件 - pageInterceptor i拦截器将修改执行人的4-参数方法的执行程序执行器方法=查询。
PageInterceptor源代码:
通过以上,解决问题的原因更为简单。还有另外两个解决方案,如下:
解决方案1调整执行订单mybatis-config.xml代码我们的自定义拦截器配置序列在前面
小心!交叉剖面
PageHelper的依赖性JAR必须使用PageHelper的本机Jar PageHelper-spring-spring-boot-starter jar package。拦截器的顺序无效
错误依赖性:
正确依赖
解决方案2修改拦截器的定义或
在细节上,有一个世界,出色的代码非常出色。