
本文共 5613 字,大约阅读时间需要 18 分钟。
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
Proxy������������������������������������
���������������Interface Abstraction���������������������������������������������������������������������������
���������������Control Access���������������������������������������������������������������������������������������������������������
���������Decouple layers���������������������������������������������������������������������������������������������
������������������Filter or�� enhance���������������������������������������������������������������������������������������������������������������������
���������Simplify������������������������������������������������������������������������������������������������������������
���������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������
���������������
- ���������������������������������������������������������������������������
- ������������������������������������������������������������������������������������������������������������������������������������
- ������������������������������������������������������������������������������������������������������������������������������������������������
���������������
- ���������������������������������������������������������������������������������������������
- ���������������������������������������������������������������������ASM���������������������������������
- ������������Spring������������������AOP������������������������������������������������������������������������������������������������������
���������������������������
������������������������������������������������
JDK���������������
- ������Java������������������������������������������������������������
- ������������������������������JavaSE���������������
- ���������������������������������������������������������������������������������������������������������������������������
- ���������������������
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;interface MyInterface { void doSomething();}class MyInvocationHandler implements InvocationHandler { public Object invoke(Message m, Method method, Object[] args) throws Throwable { System.out.println("������������������������..."); method.invoke(target, args); System.out.println("������������������������..."); return null; }}class MyService { public void doSomething() { System.out.println("������������������..."); }}MyService target = new MyService();Object proxy = Proxy.newProxyInstance(Proxy.class.getClassLoader(), MyInterface.class, new MyInvocationHandlerImpl());proxy.doSomething();
CGLIB���������������
- ������ASM���Java���������������������������������������������������������������������������������������������������������������
- ���������������������������������������������������������������
- ���������������������������������������������������������������
- ���������������������
import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.Proxy;class CGLibDynamicProxy implements MethodInterceptor { public Object intercept(Object o, Method method, MethodProxy methodProxy, Object[] args) throws Throwable { System.out.println("���������������������������..."); methodProxy.invoke(target, args); System.out.println("���������������������������..."); return null; }}class TargetObject { public void doSomething() { System.out.println("������������������..."); }}TargetObject target = new TargetObject();TargetObject proxy = (TargetObject) Proxy.createuevo(CGLibDynamicProxy.class, target);proxy.doSomething();
Javassist���������������
- ������JavaAssist������������������������Java���������������������������������������������������������������������
- ���������������������������������������������������������
- ������CGLIB���JDK���������������������������������������
������������������������
���������������������������������������������������������������������������������������������
������������������������������������������������������CGLIB���Javassist���������������������������������������JDK���������������
���������������������������������������������������������������������������JDK������������������������������������������������������������������������������������������������������CGLIB���Javassist���
������������������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������Spring������������@Aspect������������������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
