上一篇介绍AOP的文章中,我们通过一张图了解AOP的底层原理.如图

在AOP框架的使用过程中,有一种框架使用模式叫手动代理----Jdk动态代理.它是通过接口+实现类的方式来实现的.所以今天我们就来玩一次jdk的动态代理.
首先根据图解,我们来分析一下需要哪些对象才能进行手动代理.
1.目标类(target):接口+实现类
2.切面类:用于存放通知MyAspect
3.工厂类:用来将目标类和切面类结合起来生成工厂代理对象
4.测试类:用来测试代码
目标类以及实现类


切面类:

工厂类


其中我们在生成代理对象的过程中会调用Proxy.newProxyInstance方法,它会返回给我们一个Object对象,我们需要将其转换成相应的类型.在newProxyInstance方法中有一些参数需要了解一下.

看到第三个参数h,这个参数代表处理类,是个接口,而且它需要采用匿名内部类的方式(没有类名),那么其底层有一个我们必须实现的方法叫invoke方法.如图


测试

最后运行测试代码

文章转载自程序猿I小t,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




