AOP面向切面编程
1. AOP
• AOP (Aspect Orient Programming) 面向切面编程是从动态角度考虑程序的运行过程
• AOP底层,就是采用动态代理模式实现的,采用了两种代理,JDK的动态代理和CGLib的动态代理
• 实际上AOP就是动态代理的一种规范化,因为动态代理种类繁多,掌握较难,所以就规范了一套统一的方式,这就是AOP
• AOP把动态代理的实现步骤,方式都定义好了,让开发人员用一种统一的方式,去用动态代理。
1.1 动态代理实现方式
JDK:
• jdk动态代理,要求jdk中有Proxy,Method,InvocationHandler创建代理对象
• jdk代理要求目标类必须实现接口
CGLib:
• 第三方的工具库,创建代理对象,原理是继承,通过继承目标类创建子类,子类就是代理对象
• CGLib要求目标类不能是final的 方法也不能是final的