
CGLIB全网详细教程
代码实现模块导入cglib
源码地址:https://github.com/cglib/cglib
获取当前最新版本:cglib-nodep-3.3.0.jar
定义主题业务 *** 作类
class Message {
public void send() {
System.out.println("【Message】www.baidu.com");
}
}
- 定义代理类
class ProxyUtil implements MethodInterceptor {
private Object target;
public ProxyUtil(Object target) {
this.target = target;
}
public Object createProxy() {
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(this.target.getClass());
enhancer.setCallback(this);
return enhancer.create();
}
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
Object result = null;
System.out.println("【ProxyUtil】before invoke...");
//result = methodProxy.invokeSuper(o, objects);
result = method.invoke(this.target, objects);
System.out.println("【ProxyUtil】after invoke...");
return result;
}
}
- 测试代码
public class CGLibDemo {
public static void main(String[] args) {
Message message = (Message) new ProxyUtil(new Message()).createProxy();
message.send();
}
}
- 程序执行结果
【ProxyUtil】before invoke... 【Message】www.baidu.com 【ProxyUtil】after invoke...
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)