java代理技术二(Cglib实现)
来源:互联网 发布:幼儿园美工课教案 编辑:程序博客网 时间:2024/05/22 10:22
由于jdk默认实现只能对接口进行代理,对普通类就不行了。所以Cglib正是为了弥补这种不足开发的。原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强。因为采用的是继承,所以不能对final修饰的类进行代理。
采用上一篇类似的代码:
一个普通类(未明确指明实现接口)
public class DoSomethingImpl2 {public void doA() {System.out.println("I'm DoSomethingImpl2...");}}
完成一个cglib代理类
import java.lang.reflect.Method;import net.sf.cglib.proxy.*;public class DoSomethingCglib implements MethodInterceptor{private Object target;public Object getInstance(Object target){this.target=target;Enhancer enhancer = new Enhancer();enhancer.setSuperclass(target.getClass());enhancer.setCallback(this);return enhancer.create();}@Overridepublic Object intercept(Object obj, Method method, Object[] args,MethodProxy proxy) throws Throwable {Object result;System.out.println("Cglib代理准备...");result=proxy.invokeSuper(obj, args);System.out.println("Cglib代理完成...");return result;}}
一个测试类
public class TestProxy {public static void main(String[] args){DoSomethingCglib dscg=new DoSomethingCglib();DoSomethingImpl2 dsi2CgProxy=(DoSomethingImpl2)dscg.getInstance(new DoSomethingImpl2());dsi2CgProxy.doA();}}
0 0
- java代理技术二(Cglib实现)
- cglib实现动态代理(二)
- 详解Java动态代理机制(二)----cglib实现动态代理
- 二.cglib实现动态代理
- Java实现代理模式(CGLIB)
- Java动态代理--CGLib实现
- Java的动态代理实现(JDK默认和CGLIB)
- java动态代理2 (cglib 不用实现接口)
- Java实现动态代理(cglib,aop)的过程
- Java代理模式及应用(三)Cglib实现
- Java 动态代理 (CGLIB代理)
- Java代理模式(cglib代理)
- java代理(三)--cglib动态代理
- cglib动态代理技术
- 在Java中利用cglib实现代理
- JAVA 代理之---CGLIB的实现
- 系统架构设计——设计模式之代理模式(二)CGLIB动态代理实现
- 设计模式学习之代理模式(二)--CGLIB实现对Class动态代理
- hdu4512 LCIS
- C语言中restrict关键字学习
- PreparedStatement的用法
- 如何在iis部署.net4.0网站
- 不同主机下的xen虚拟机之间互ping
- java代理技术二(Cglib实现)
- 运营商大数据谁来主导?
- UISearchBar 自定义 placeholder color
- 父替女还23万卡债:“卡奴”怎走投无路
- TransactionAttributeType(transaction propagation behaviors)
- 记录的选择
- ViewFlipper 与GestureDetector 手势使用
- Linux内核源代码的结构
- VisionMobile报告:商业和生产应用:蕴藏的开发者机遇(二)1、移动革命:改变工作场所