- 用途
- 增强/替换原有类的行为
- AOP编程
- 日志增强
- 权限控制
- 事务管理等
- 分类
- 静态代理
- 实现同一个接口
- 传入被代理对象
- 动态代理
- jdk->Proxy、InvocationHandler实现
- 面向接口,生成与被代理类继承相同接口的class文件
- 反射调用(效率降低)
- cglib->基于ASM,修改被代理类class,生成其子类
- 生成class文件较慢?
- 生成class文件较慢?
- jdk->Proxy、InvocationHandler实现
- 静态代理
参考:
-
处理注解:http://www.cnblogs.com/aheizi/p/4861422.html
-
ASM原理:https://www.ibm.com/developerworks/cn/java/j-lo-asm30/