spring的aop分为两种,一种是apsectj的静态代理,简单来说就是在编译的时候就把需要实现功能的代码织入原代码中
另一种是静态代理,静态代理又分为两类,一种是cglib这种,通过继承父类来实现一些功能,所以被代理的类不能是final修饰的
另一种是jdk动态代理,jdk动态代理是面向接口的,首先我们写一个需要代理的接口interface,然后写一个这个接口的具体实现类interfaceimp。接下来写一个实现了invocationhandler的类,这个类实现了一个invoke方法,运用反射机制实现委托类的方法:method.invoke,在这个方法之前我们可以做一些事情,之后也可以做一些事情,这就是代理了。