My batis 拦截器介绍 1
1 目录 1
1 目录 1
2 前言 1
3 Interceptor 接口 1
4 注册拦截器 1
5 Mybatis 可拦截的方法 1
6 利用拦截器进行分页 1
2 前言 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法
Mybatis 拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis 固有的逻辑
打个比方,对于Executor,Mybatis 中有几种实现:BatchExecutor、ReuseExecutor、SimpleExecutor 和 CachingExecutor
这个时候如果你觉得这几种实现对于Executor 接口的query 方法都不能满足你的要求,那怎么办呢
是要去改源码吗
我们可以建立一个Mybatis 拦截器用于拦截Executor 接口的query 方法,在拦截之后实现自己的query 方法逻辑,之后可以选择是否继续执行原来的query 方法
3 Interceptor 接口 对于拦截器Mybatis 为我们提供了一个Interceptor 接口,通过实现该接口就可以定义我们自己的拦截器
我们先来看一下这个接口的定义: Java 代码 1
package org
apache
ibatis
plugin; 2
import java
Properties; 4
public interface Interceptor { 6
Object intercept(Invocation invocation) throws Throwable; 8
Object plugin(Object target)