模拟CGlib代理重写的子类代码
情景如下——小孩吃东西
需要被代理的类(目标类)
如何在不改动该Kid内部任何逻辑的情况下,实现健康的吃东西方式?
1、首先定义了一个,用于实现代理的(完成代理任务)“介质”接口;
2、对原Kid类做一个方法拦截
3、模拟Cglib,自己实现一个类似的子类代码,基本逻辑跟Cglib一致
4、测试实现
这样,我们就用一个代理类,实现了原逻辑的方法级别的切面逻辑。CGLib则是用ASM自动生成了重写子类。存在super还是比较容易实现代理父类的。
情景如下——小孩吃东西
如何在不改动该Kid内部任何逻辑的情况下,实现健康的吃东西方式?
1、首先定义了一个,用于实现代理的(完成代理任务)“介质”接口;
2、对原Kid类做一个方法拦截
3、模拟Cglib,自己实现一个类似的子类代码,基本逻辑跟Cglib一致
4、测试实现
这样,我们就用一个代理类,实现了原逻辑的方法级别的切面逻辑。CGLib则是用ASM自动生成了重写子类。存在super还是比较容易实现代理父类的。