CGLib的一个简单的例子
来源:互联网 发布:今日重要财经数据 编辑:程序博客网 时间:2024/05/22 10:23
CGlib是一个强大的,高性能,高质量的Code生成类库。它常常被用来在运行期扩展Java类与实现Java接口。
它可以在不改变源代码的情况下对类的功能进行增强。
package cglib;import java.lang.reflect.Method;import net.sf.cglib.proxy.Callback;import net.sf.cglib.proxy.CallbackFilter;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import net.sf.cglib.proxy.NoOp;class SubClass implements MethodInterceptor {//代理类需要代理的方法@Overridepublic Object intercept(Object obj, Method method, Object[] args,MethodProxy proxy) throws Throwable {System.out.println("MethodInterceptor start..."); proxy.invokeSuper(obj,args); System.out.println("MethodInterceptor ending..."); return null;}}//被代理的类class SuperClass {public void hello(String name) {System.out.println("hello, " + name);}public void bye(String name) {System.out.println("bye, " + name);}}//过滤器-只对被代理类的bye()方法进行增强class ProxyFilter implements CallbackFilter{ @Override public int accept(Method arg0) { if("bye".equalsIgnoreCase(arg0.getName())) { return 0; } return 1; } }public class GCLibTest {public static void main(String args[]) {Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(SuperClass.class); //设置被代理的类 enhancer.setCallbacks(new Callback[]{new SubClass(),NoOp.INSTANCE}); //根据SubClass中的实现对方法进行增强 enhancer.setCallbackFilter(new ProxyFilter()); //使用过滤器 SuperClass create = (SuperClass)enhancer.create(); create.hello("ken"); //使用enhancer产生的代理类不需要修改SuperClass类中的代码,就可以对bye()进行增强 create.bye("ken"); }}
0 0
- CGLib的一个简单的例子
- cglib动态代理简单的例子
- cglib的小例子
- CGLib动态代理原理及实现的一个小例子
- 一个简单的例子
- cglib的简单案例
- Cglib的简单使用
- openmp 例子:一个简单的OpenMP例子
- 一个简单的Struts例子
- 一个简单的Hibernate例子!
- auto_ptr的一个简单例子
- 一个简单的Struts例子
- 一个简单的JSF例子
- 一个简单的EJB例子!!
- 一个简单的serverclick 例子
- 一个简单易懂的例子
- 一个GMF的简单例子
- 一个简单的GUI例子
- 经典语录
- ant的使用(入门)
- 制作纯DOS启动U盘
- hdu3389 Game NIM博弈
- C++ delete 与 delete[]区别
- CGLib的一个简单的例子
- netty上传文件例子
- mac os x 安装 python MySQLdb 模块 记录
- oracle实用sql语句
- LoadRunner Controller cannot create vusers
- Android Mediaplayer 常见问题总结
- linux 添加huwei3g驱动的调试流程
- TCP/IP,http,socket,长连接,短连接——小结
- xml知识