关于Mybatis中插件的声明需要在configuration的配置文件中进行配置,配置文件的位置使用configLocation属性指定。测试中使用的config文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--plugins插件之 分页拦截器 -->
<plugins>
<plugin interceptor="com.interceptors.LogInterceptor" ></plugin>
</plugins>
</configuration>
在配置文件中配置了一个Interceptor的实现类,LogInterceptor的代码如下:
public class LogInterceptor implements Interceptor{
@Override
public Object intercept(Invocation invocation) throws Throwable {
System.out.println("LogInterceptor : intercept");
return null;
}
@Override
public Object plugin(Object target) {
if(target instanceof StatementHandler){
RoutingStatementHandler handler = (RoutingStatementHandler)target;
//打印出当前执行的sql语句
System.out.println(handler.getBoundSql().getSql());
}
return target;
}
@Override
public void setProperties(Properties properties) {
System.out.println("LogInterceptor : setProperties");
}
}
在工程的配置文件中,在配置SqlSessionFactoryBean时需要指明config配置文件的位置,配置文件如下:
<?xml version="1.0" encoding=