我们都知道,spring aop主要是通过动态代理实现,而动态代理对象的产生主要是通过CGLib,而CGlib代理对象的方法内容的增强主要是在
MethodInterceptor的intercept(),如果不熟悉CGlib的同学请先熟悉CGBlib的使用。
Spring对CGLib进行了一些封装,如DynamicAdvisedInterceptor继承自CGLib的MethodInterceptor,它的intercept()是所以事务代理对象增强代码的入口。Intercept()对事务的增强主要通过调用TransactionInterceptor的Invoke()方法。具体内容如下:
1、 TransactionInterceptor的invoke(finalMethodInvocation invocation)中的invocation实例是CGLibProxy.CGlibMethodInterceptor,
Invoke()方法干的事情是:
1) 获取代理方法的实际类,
2)