package com.moral.api.config.mybatis; 
 | 
  
 | 
import org.apache.ibatis.executor.statement.StatementHandler; 
 | 
import org.apache.ibatis.mapping.BoundSql; 
 | 
import org.apache.ibatis.mapping.MappedStatement; 
 | 
import org.apache.ibatis.plugin.*; 
 | 
import org.apache.ibatis.reflection.DefaultReflectorFactory; 
 | 
import org.apache.ibatis.reflection.MetaObject; 
 | 
import org.apache.ibatis.reflection.SystemMetaObject; 
 | 
import java.sql.Connection; 
 | 
import java.util.Properties; 
 | 
  
 | 
import static javax.xml.bind.JAXBIntrospector.getValue; 
 | 
  
 | 
  
 | 
/** 
 | 
 * @ClassName MybatisIntercept 
 | 
 * @Description TODO 
 | 
 * @Author 陈凯裕 
 | 
 * @Date 2021/9/17 10:57 
 | 
 * @Version TODO 
 | 
 **/ 
 | 
//@Component 
 | 
/*@Intercepts({ 
 | 
        //type指定代理的是那个对象,method指定代理Executor中的那个方法,args指定Executor中的query方法都有哪些参数对象 
 | 
        //由于Executor中有两个query,因此需要两个@Signature 
 | 
        @Signature(type = Executor.class,method = "query",args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class}), 
 | 
        @Signature(type = Executor.class, method = "query", args = { MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class })//需要代理的对象和方法 
 | 
})*/ 
 | 
  
 | 
@Intercepts({ 
 | 
        //type指定代理的是那个对象,method指定代理Executor中的那个方法,args指定Executor中的query方法都有哪些参数对象 
 | 
        //由于Executor中有两个query,因此需要两个@Signature 
 | 
        @Signature(method = "prepare", type = StatementHandler.class, args = {Connection.class,Integer.class}) 
 | 
}) 
 | 
public class MybatisIntercept implements Interceptor { 
 | 
  
 | 
    @Override 
 | 
    public Object intercept(Invocation invocation) throws Throwable { 
 | 
        System.out.println(11); 
 | 
        return null; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Object plugin(Object target) { 
 | 
        Object wrap = Plugin.wrap(target, this); 
 | 
        return wrap; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void setProperties(Properties properties) { 
 | 
  
 | 
    } 
 | 
  
 | 
} 
 |