“动态代理、CGLIB 与 切面编程”的版本间差异

来自Wikioe
跳到导航 跳到搜索
(建立内容为“category:Java == 关于Java中的 代理、动态代理、CGLIB 以及 AOP ==”的新页面)
 
无编辑摘要
第1行: 第1行:
[[category:Java]]
[[category:Java]]


== 关于Java中的 代理、动态代理、CGLIB 以及 AOP ==
== 关于代理 ==
代理,简单说就是:不直接操作对象,而使用代理对象来完成操作;
* 通过代理对象,可以对原对象进行方法扩展;
 
 
代理又可以分为
# 静态代理:通过聚合、继承的方式生成代理对象;
#* 代理关系在编译时就确定了
# 动态代理:
#* 运行期动态生成代理对象;
## 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的版本


关于代理

代理,简单说就是:不直接操作对象,而使用代理对象来完成操作;

  • 通过代理对象,可以对原对象进行方法扩展;


代理又可以分为

  1. 静态代理:通过聚合、继承的方式生成代理对象;
    • 代理关系在编译时就确定了
  2. 动态代理:
    • 运行期动态生成代理对象;
    1. Java动态代理:(针对实现了接口的类)
    2. CGLIB:(针对没有实现接口的类)
    3. AspectJ:(springframework的aop基于此实现)

Java动态代理

参见:JavaCore:接口(代理)

CGLIB

AspectJ

参见:Spring:AOP