AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待。
(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知
(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用
(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around
(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式
权限控制,缓存优化。
基于代理模式,JDK动态代理和Cglib动态代理。
对象在调用方法前处理,在调用方法后处理。。
-
静态代理:由自己实现代理类。
-
动态代理:由自带工具类生产代理类。
JDK动态代理,交由JdkProxyHandler创建代理对象,运用了反射机制。
Cglib动态代理,运用字节码技术。