【框架】123:spring框架之面向切面编程( 三 )


setCallback方法的参数需要该接口的实现类对象 , 我们可以直接使用匿名内部类的方式作为参数 , 就和调用处理器一样 。
但是在本类中实现这个接口 , 不就有了一个现成的实现类么?而this表示谁调用我就是谁 , 本类或者本类的子类都行 。
这里进一步优化代码的编写 , 上述Jdk动态代理中也可以这样优化 。
intercept方法
这是MethodInterceptor接口中的一个方法 , intercept , 翻译就是拦截的意思 。
其参数和Jdk中的调用处理器基本一样 。
生成代理对象
enhancer调用create()生成代理对象 。
代码写完 , 做个测试
【框架】123:spring框架之面向切面编程
文章图片
方法测试
通过运行结果我们可以发现:和Jdk动态代理能达到一样增强选定方法的效果 。
注意:目标对象CustomerServicePlus并没有实现接口 , 如果使用Jdk动态代理是不行的 , 得使用Cglib动态代理才可以 。
最后
谢谢你的观看 。
如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。