JDK和Cglib动态代理
来源:互联网 发布:交通安全事故数据 编辑:程序博客网 时间:2024/05/17 19:20
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class JDKProxyFactory implements InvocationHandler{Object target;public JDKProxyFactory(Object target) {this.target = target;}public Object createProxy() {return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("proxy1: " + method.getName());return method.invoke(target, args);}});}public Object createProxy2() {return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("proxy2: " + method.getName());return method.invoke(target, args);}}
import java.lang.reflect.Method;import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import org.springframework.cglib.proxy.MethodProxy;public class CglibProxyFactory implements MethodInterceptor {Object target;public CglibProxyFactory(Object target) {this.target = target;}public Object createProxy() {Enhancer enhancer = new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(new MethodInterceptor() {@Overridepublic Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {System.out.println("CglibProxy: " + method.getName());return methodProxy.invokeSuper(proxy, args);}});return enhancer.create();}public Object createProxy2() {Enhancer enhancer = new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(this);return enhancer.create();}@Overridepublic Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {System.out.println("CglibProxy2: " + method.getName());return methodProxy.invoke(target, args);}}
阅读全文
0 0
- 动态代理(JDK和CGLIB)
- JDK动态代理和CGLIB
- jdk和cglib动态代理
- JDK和Cglib动态代理
- JDK动态代理和CGLIB动态代理
- JDK动态代理和CGLIB动态代理
- JDK动态代理和Cglib动态代理
- Cglib动态代理和jdk动态代理
- jdk动态代理和CGlib动态代理
- jdk动态代理和cglib动态代理
- JDK动态代理和CGLIB代理
- jdk动态代理和cglib强制代理
- JDK动态代理和CGLIB代理
- jdk动态代理和cglib代理总结
- jdk动态代理和cglib代理区别
- JDK动态代理和CGLib代理
- CGLib&JDK动态代理
- 动态代理JDK cglib
- 【基础】查看程序运行所需时间--C++源代码(g++ 4.9.3)
- Scrapy 框架
- 离开快两年了。
- 菜鸟学习历程【2】vim的简单操作、GCC工具链、make和Makefile、GDB调试工具、Shell使用基础
- is not in the sudoers file
- JDK和Cglib动态代理
- 一致性哈希算法及其在分布式系统中的应用
- java笔试题50道
- Scrapy的安装介绍
- 立冬出生的宝宝取名大全测试打分准不准
- 入门案例
- 第一届嵌入式电子协会竞赛之智能家居控制系统
- LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
- building-gcc-4-8-from-source-on-ubunu-12-04/