动态代理(dynamic proxy)

2019-06-05  本文已影响0人  可可西里的星星

动态代理(dynamic proxy)
利用Java的反射技术(Java Reflection),在运行时创建一个实现某些给定接口的新类(也称“动态代理类”)及其实例(对象),代理的是接口(Interfaces),不是类(Class),也不是抽象类。在运行时才知道具体的实现,spring aop就是此原理。

public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
throws IllegalArgumentException
newProxyInstance,方法有三个参数:

loader: 用哪个类加载器去加载代理对象

interfaces:动态代理类需要实现的接口

h:动态代理方法在执行时,会调用h里面的invoke方法去执行

定义一个接口:

package com.xhx.java;

/**

package com.xhx.java;

/**

package com.xhx.java;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**

proxy:就是代理对象,newProxyInstance方法的返回对象

method:调用的方法

args: 方法中的参数

package com.xhx.java;

import java.lang.reflect.Proxy;

/**

可以打印一下:

System.out.println(vehical.getClass());

我的git代码地址

https://github.com/xuhaixing/myDocument.git

路径java\proxy

版权声明:本文为博主原创文章,转载请附上博文链接!

上一篇 下一篇

猜你喜欢

热点阅读