黑马程序员-Java反射机制及JDK动态代理技术
2011-07-13 17:05
197 查看
Java反射是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifier(诸如public, static 等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。
Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。
换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。
在Java中要想实现动态代理则必须要java.lang.reflect.InvocationHandler接口和java.lang.reflect.Proxy类地支持。
在InvocationHandler接口中定义了一个invoke()的方法,此方法有三个参数如下:
Object Proxy:被代理的对象
Method method :要调用的方法
Object args[] :方法调用时所需要的参数
Porxy类是专门完成代理的操作类,可以通过此类为一个或者多个接口动态的生成代理对象,该类中newProxyInstance()动态的生成代理对象,该方法有下面三个
参数:
ClassLoader loader:类加载器
Class<?> interface:得到全部的接口
InvocationHander h : 得到InvocationHander接口的实例
要想完成动态代理第一步必须定义一个InvocationHander接口的实现类。
public class MyInvocationHander implements InvocationHander{
public Object invoke(....){
..........
}
}
Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。
换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。
在Java中要想实现动态代理则必须要java.lang.reflect.InvocationHandler接口和java.lang.reflect.Proxy类地支持。
在InvocationHandler接口中定义了一个invoke()的方法,此方法有三个参数如下:
Object Proxy:被代理的对象
Method method :要调用的方法
Object args[] :方法调用时所需要的参数
Porxy类是专门完成代理的操作类,可以通过此类为一个或者多个接口动态的生成代理对象,该类中newProxyInstance()动态的生成代理对象,该方法有下面三个
参数:
ClassLoader loader:类加载器
Class<?> interface:得到全部的接口
InvocationHander h : 得到InvocationHander接口的实例
要想完成动态代理第一步必须定义一个InvocationHander接口的实现类。
public class MyInvocationHander implements InvocationHander{
public Object invoke(....){
..........
}
}
相关文章推荐
- 深入探索spring技术内幕(六): JDK动态代理和cglib生成代理
- Spring AOP的底层实现技术---JDK动态代理
- 动态代理(jdk)+cglib技术
- 黑马程序员_Java高新技术_动态代理技术的深入理解
- 黑马程序员 java高新技术<四>--类加载器、动态代理技术的深入讲解与应用
- MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)(转)
- AOP编程学习笔记之----JDK动态代理技术
- 利用JDK的中Proxy动态代理实现Spring的AOP技术
- 黑马程序员_动态代理技术
- 代理技术简介(二):JDK动态代理
- 深入探索spring技术内幕(六): JDK动态代理和cglib生成代理
- MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)
- 黑马程序员-基础加强-类加载器&动态代理技术-No.10
- Spring AOP的底层实现技术---JDK动态代理
- 【黑马程序员】java中的--------------代理类与动态代理技术
- 使用JDK中的Proxy技术来实现动态代理
- Spring AOP的底层实现技术---JDK动态代理
- Spring AOP的底层实现技术---JDK动态代理
- 使用JDK中的Proxy技术实现AOP功能[动态代理]
- Jdk自带的动态代理技术