概述
AOP关注的是程序中的共性功能,开发时,将共性功能抽取出来制作成独立的功能模块,此 时原始功能中将不具有这些被抽取出的共性功能代码。在被抽取的共性功能的模块运行时 候,将共性功能模块也运行,即可完成原始的功能。
作用
在不修改源代码的情况下,对原方法进行增强
AOP的原理
装饰模式
动态代理
动态代理
jdk自带的proxy
//loader : 被代理类(被增强类)的类加载器
//interfaces : 被代理类(被增强类)的类所实现的所有接口
//h : InvocationHandler对象,执行增强
Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
//Object : 方法执行返回的结果
//method : 被代理类(被增强类)的原方法
//args : 被代理类(被增强类)的原方法的实际参数
Object Object invoke(Object proxy, Method method, Object[] args)
通过Proxy获取代理对象 执行被代理对象的方法 并实现增强