AOP:面向切面编程,其原理,基于动态代理的思想,通过代理对象,调用增强功能代码(权限控制,缓存,事务管理,日志记录等);
代理的方式:
JDK动态代理,针对目标类的接口进行代理(implementsInvocationHandler)
CGLIG动态代理,可以在运行期间动态生成代理类的子类,不必只针对接口(implementsMethodInterceptor)
tip:动态代理是在JVM运行时动态生成代理类(不存在的),静态代理时真是存在的,方法前后增强,如:strutsAction的ActionProxy;
Spring 1.2 时内置了AOP,Sping 2.0 使用了第三方AOP框架,AspectJ
代理模式的代码:https://gitee.com/venfu/rangers_collect_practice/tree/master/src/main/java/cn/xiaolang/function/design_pattern
领取专属 10元无门槛券
私享最新 技术干货