cglib代理
来源:互联网 发布:小语网络加速器 编辑:程序博客网 时间:2024/05/23 05:10
cglib代理
cglib这种方式我在开发中用的也不多,接触它是通过Spring中的aop接触的,下面就简单介绍一下它的使用方式,以后如果有机会深入学习了再继续讨论。我们的例子还是和前面的动态代理一样的实例:
package com.itcast.d_cglib;//目标对象类,不需要实现接口public class UserServiceImpl{ public void save(){ System.out.println("UserService:保存了。。。。"); }}
下面是工厂类的代码
package com.itcast.d_cglib;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 UserServiceFactory2 { private Object target; public UserServiceFactory2(Object target){ this.target = target; } public Object getProxy(){ //1.创建工具类 Enhancer en = new Enhancer(); //2.设置父类 en.setSuperclass(target.getClass()); //3.设置回调函数 en.setCallback(new MethodInterceptor() { @Override public Object intercept(Object arg0, Method method, Object[] arg2, MethodProxy arg3) throws Throwable { Object invoke ; if("save".equalsIgnoreCase(method.getName())){ System.out.println("save方法执行之前"); invoke= method.invoke(target, args); System.out.println("save方法执行之后"); }else{ invoke= method.invoke(target, args); } return invoke; } }); //4.创建子类对象,即代理对象 return en.create(); }}
下面是测试代码
package com.itcast.d_cglib;import org.junit.Test;public class TestDemo { @Test public void test1(){ try { UserServiceImpl service = new UserServiceImpl(); UserServiceFactory factory = new UserServiceFactory(service); UserServiceImpl proxy = (UserServiceImpl)factory.getProxy(); proxy.save(); } catch (Exception e) { e.printStackTrace(); } }}
有对这方面比较了解的小伙伴可以在下面留言,咱么单独讨论一下
0 0
- cglib代理
- cglib代理
- CGLIB代理
- cglib 代理
- cglib代理
- cglib代理
- 代理-Cglib
- Cglib代理
- CGLib代理
- cglib代理
- 初识CGLIB动态代理
- cglib实现代理
- Cglib 动态代理
- cglib代理实例
- CGLib 动态代理
- 动态代理-->cglib
- cglib动态代理介绍
- cglib动态代理
- (Java)LeetCode-50. Pow(x, n)
- Python:class类
- forward和param动作
- linux 终端命令大全
- 动态链接库的使用
- cglib代理
- C++/STL bitset
- 自己DIY一个智能家居模型框架--DHT11驱动
- Android 性能优化——布局优化
- 数据结构-图的邻接矩阵表示
- O(n)欧拉函数+素数筛选
- bitset 的使用
- 敏捷开发学习总结(4):极限编程(XP)学习笔记
- 数据结构实验之链表七:单链表中重复元素的删除 c++练习