本文是根据《深入分析Java Web技术内幕》一书第十三章探讨
Spring Aop是什么
简单来说就是面向切面编程。Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。
JDK动态代理
JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。代理的目的是调用目标方法时可以转而执行InvocationHandler的invoke方法,实际上spring aop也是在这里做文章。这也是典型的代理模式
下面简单代码说明这个问题
- 实现自己的InvocationHandler
/**
*
* @author yvan
*
*/
public class AopProxy implements InvocationHandler {
private Object realObject;
public