Interceptor
拦截器,对原方法调用的拦截,可以在此处加入自己的逻辑。其中intercept方法实现拦截逻辑,plugin方法返回一个对目标对象的代理,然后再代理对象里调用intercept。
InterceptorChain
拦截链,封装多个Interceptor,分别调用这些Interceptor的plugin方法实现对目标对象的代理。
Invocation
Plugin
实现了InvocationHandler,是一个代理类。可以在Interceptor#plugin方法中使用Plugin#wrap方法返回一个代理对象,Plugin#invoke方法中调用Interceptor#intercept方法实现拦截功能。
Intercepts
Signature
Configuration
拦截器会对Executor、StatementHandler、ParameterHandler、ResultSetHandler四个类进行拦截。在Configuration中构建这四个对象时调用InterceptorChain#pluginAll方法返回一个代理,在这些代理中实现拦截逻辑。
