JDK动态代理原理和应用
# JDK动态代理原理和应用
# 代理在现实商业里的应用
渠道、终端、连锁、加盟、代理、分销、代销分别是什么意思,有什么不同? (opens new window)
# 动态代理的基本使用
代码演示:
1 基本使用
2 封装通用的切面层 ,以及与范型的结合使用
可以传入任意接口的实现类:(需要泛型加到类声明上)
也可以泛型直接声明在方法上:
以上两者均需要:
代理调用时只调用接口的方法.不能调用类有而接口没有的方法
# 代理类是什么样的?
动态代理生成的是个什么类?
# 手写实现动态代理
纯手写实现JDK动态代理 (opens new window)
- 手动拼字符串,用StringBuilder写一个代理类
- 将字符串的类编译成字节码class
- 用自定义的classloader加载这个字节码
# 应用
日志
LogProxy.java
任意通用型切面功能
# 局限性/功能边界
只能代理接口.不能代理类.->JAVA不能多继承
生成的代理方法,代理类上,注解被抹除了
getClass().getInterfaces()只能获取当前类自己实现的接口,不能父类实现的接口: 需要递归获取所有接口
编辑 (opens new window)
上次更新: 2022/08/16, 20:05:05