Java动态代理

Posted 浴盆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java动态代理相关的知识,希望对你有一定的参考价值。

解决的问题

在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在访问此对象时加上一个对此对象的访问层。
Java动态代理实现方式:

  • JDK 自带的动态代理
  • Cglib动态代理

JDK 自带的动态代理

public  interface People
   
	/**
     * 交谈
     */
     void speak();

在实例化test这个对象的时候,我们调用了Proxy的newProxyInstance方法

public class test implements InvocationHandler 
	private People people;
	// 获取被代理对象信息
	public Object getInstance(People people) 
		this.people = people;
		Class clazz = people.getClass();
		return Proxy.newProxyInstance(clazz.getClassLoader(), class.getInterfaces(), this);
	
	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable 
		method.invoke(people);
		return null;
	

以上是关于Java动态代理的主要内容,如果未能解决你的问题,请参考以下文章

java动态代理是啥

java深入分析Java反射-动态代理 proxy

java-动态代理

Java动态代理实现方式一

Java动态代理

Java动态代理