MyBatis拦截器–从基础到与Spring Boot整合
前言
MyBatis拦截器是Java持久层框架,最近在研究拦截器的写法。本以为会很复杂,实际上从使用上来说,是很简单的.
本文主要介绍的时各个方法和注解的含义及使用方式,并且与Spring Boot进行简单的整合。
话不多说,开始说明。
关于拦截器
Mybatis拦截器的写法很简单,需要继承Interceptor
类,重写其中的intercept()
、plugin()
、setProperties()
。
package org.apache.ibatis.plugin;
//import ingnore
public interface Interceptor {
Object intercept(Invocation invocation) throws Throwable;
Object plugin(Object target);
void setProperties(Properties properties);
}
具体如下:
@Intercepts(@Signature(type = Executor.class, method = "query", args = {
MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}))
@Component
public class UserAuthorityDataInterceptor implements Interceptor {
@Override
public Object intercept(Invocation invocation) throws Throwable {
return invocation.proceed();
}
@Override
public Object plugin(Object target) {
return Plugin.wrap(target,this);
}
@Override
public void setProperties(Properties properties) {
}
}
这是先说方法,再说注解
方法
-
setProperties()
方法主要是用来从配置中获取属性。如果是使用xml式配置拦截器,可在Mybatis配置文件中添加如下节点,属性可以以如下方式传递
<plugins> <plugin interceptor=<