Spring AOP 的面向切面编程,就是在不修改源代码的情况下,对方法进行增强,就是将一些公共的代码封装就给Spring容器,在运行的是将这些代码动态的植入到方法的前后以及异常.
Spring AOP 的动态代理主要有两种方式实现,JDK 动态代理和 cglib 动态代理。JDK 动态代 理通过反射来接收被代理的类,但是被代理的类必须实现接口,核心是 InvocationHandler 和 Proxy 类。cglib 一般是没有实现接口的类,cglib 是一个代码生成的类库, 可以在运行时动态生成某个类的子类,所以,CGLIB 是通过继承的方式做的动态代理.