Proxy动态代理机制
Posted 天耀106
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Proxy动态代理机制相关的知识,希望对你有一定的参考价值。
代理模式的作用是为其他对象提供一种代理以控制对这个对象的访问,是控制器访问的方式,而不只是对方法扩展。
声明一个共用的接口Subject:
package com.intelink.wechat_lyl.test;
public interface Subject
void doSomething();
具体实现类RealSubject:
package com.intelink.wechat_lyl.test;
public class RealSubject implements Subject
@Override
public void doSomething()
System.out.print("Call doSomething()");
实现InvocationHandler,做一些具体的逻辑处理:
package com.intelink.wechat_lyl.test;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class ProxyHandler implements InvocationHandler
private Object realSubject;
public ProxyHandler(Object realSubject)
this.realSubject= realSubject;
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
Object result= method.invoke(realSubject,args);
return result;
通过Proxy新增代理类对象:
package com.intelink.wechat_lyl.test;
import java.lang.reflect.Proxy;
public class DynamicProxy
public static void main(String[] args)
RealSubject real = new RealSubject();
Subject proxySubject= (Subject) Proxy.newProxyInstance(Subject.class.getClassLoader(),new Class[]Subject.class,new ProxyHandler(real));
proxySubject.doSomething();
动态代理的作用在于在不修改源码的情况下,可以增强一些方法,在方法执行前后做任何想做的事情。以上是关于Proxy动态代理机制的主要内容,如果未能解决你的问题,请参考以下文章