java代理(三)--cglib动态代理
来源:互联网 发布:java员工请假系统 编辑:程序博客网 时间:2024/06/05 06:44
cglib动态代理是另一种动态代理,相对于jdk代理只适用于实现接口的代理,cglib动态代理可用于没有实现接口的代理。
cglib动态代理使用了asm字节码生成框架,动态生成代理类的字节码。
cglib动态代理涉及到的重要类是MethodInterceptor和Enhancer:
MethodInterceptor是一个方法拦截接口,需要被实现,在方法intercept编写代理操作逻辑;
Enhancer用于生成代理类字节码。
实例如下:
public class CglibProxyMain { public static void main(String[] args) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(HelloService.class); enhancer.setCallback(new HelloServiceInterceptor()); HelloService helloService = (HelloService)enhancer.create(); //创建代理类 helloService.hello("china"); } //实现类 static class HelloService { public void hello(String name) { System.out.println("hello,"+name); } } //代理拦截 static class HelloServiceInterceptor implements MethodInterceptor{ @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { System.out.println("use cglib proxy"); Object result = methodProxy.invokeSuper(obj,args); return result; } }}
阅读全文
0 0
- java代理(三)--cglib动态代理
- 代理模式三(cglib动态代理)
- Java 动态代理 (CGLIB代理)
- Java动态代理--cglib代理
- 【Java】CGlib动态代理
- Java-CGLib动态代理
- CGLib动态代理 java
- JAVA代理模式之三动态代理CGLIB详解
- 动态代理(三)---Cglib两种代理方式
- 代理技术简介(三):CGlib动态代理
- java中的三种对象代理 静态代理动态代理及cglib代理
- java动态代理 JDK、Cglib动态代理
- java动态代理和cglib动态代理
- Java动态代理、cglib动态代理
- java动态代理和cglib动态代理
- Java动态代理和cglib动态代理
- Java动态代理、cglib动态代理
- JAVA-三种代理模式(静态、动态、子类/Cglib代理)
- Python logging模块详解
- 26.在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机科学理论
- dos命令特殊符号
- BZOJ 1588 TREAP 解题报告
- java代理(三)--cglib动态代理
- Android学习笔记(二)–Android View绘制
- PI升级传输
- Cake
- 数据结构之辗转相除法的错误实践
- 购物车实现
- hibernate之单向多对一关联
- 个人常关注的博客--都是一些android大神,写的文章很值得学习
- Webpack基础之加载器