@Override
public Object invoke(MethodInvocation mi) throws Throwable {
boolean isCglibMi = mi.getClass().getName().equals("org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation");
if (isCglibMi && mi.getMethod().getDeclaringClass() != mi.getThis().getClass()) {
MethodProxy methodProxy = (MethodProxy) ReflectionUtils.getField(methodProxyField, mi);
Object fastClassInfo = ReflectionUtils.getField(fastClassInfoField, methodProxy);
ReflectionUtils.setField(fastClassInfoF1Field, fastClassInfo, FastClass.create(mi.getThis().getClass()));
}
return mi.proceed();
}