“动态代理、CGLIB 与 切面编程”的版本间差异
跳到导航
跳到搜索
(建立内容为“category:Java == 关于Java中的 代理、动态代理、CGLIB 以及 AOP ==”的新页面) |
无编辑摘要 |
||
第1行: | 第1行: | ||
[[category:Java]] | [[category:Java]] | ||
== | == 关于代理 == | ||
代理,简单说就是:不直接操作对象,而使用代理对象来完成操作; | |||
* 通过代理对象,可以对原对象进行方法扩展; | |||
代理又可以分为 | |||
# 静态代理:通过聚合、继承的方式生成代理对象; | |||
#* 代理关系在编译时就确定了 | |||
# 动态代理: | |||
#* 运行期动态生成代理对象; | |||
## Java动态代理:(针对实现了接口的类) | |||
## CGLIB:(针对没有实现接口的类) | |||
## AspectJ:(springframework的aop基于此实现) | |||
== Java动态代理 == | |||
参见:'''[http://wiki.eijux.com/%E6%A0%B8%E5%BF%83%E6%8A%80%E6%9C%AF%EF%BC%9A%E6%8E%A5%E5%8F%A3%E3%80%81lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F%E4%B8%8E%E5%86%85%E9%83%A8%E7%B1%BB#.E5.86.85.E9.83.A8.E7.B1.BB JavaCore:接口(代理)]''' | |||
== CGLIB == | |||
== AspectJ == | |||
参见:'''[[Spring:AOP]]''' |
2020年10月29日 (四) 01:04的版本
关于代理
代理,简单说就是:不直接操作对象,而使用代理对象来完成操作;
- 通过代理对象,可以对原对象进行方法扩展;
代理又可以分为
- 静态代理:通过聚合、继承的方式生成代理对象;
- 代理关系在编译时就确定了
- 动态代理:
- 运行期动态生成代理对象;
- Java动态代理:(针对实现了接口的类)
- CGLIB:(针对没有实现接口的类)
- AspectJ:(springframework的aop基于此实现)
Java动态代理
CGLIB
AspectJ
参见:Spring:AOP