概述
动态代理的代码使用的是这篇博客http://blog.csdn.net/yakoo5/article/details/9099133/
public class Test {
public static void main(String[] args) {
CglibProxy proxy = new CglibProxy();
//通过生成子类的方式创建代理类
SayHello proxyImp = (SayHello)proxy.getProxy(SayHello.class);
proxyImp.say();
}
}
class SayHello{
public void say(){
System.out.println("hello everyone");
}
}
class CglibProxy implements MethodInterceptor {
private Enhancer enhancer = new Enhancer();
public Object getProxy(Class clazz){
//设置需要创建子类的类
enhancer.setSuperclass(clazz);
enhancer.setCallback(this);
//通过字节码技术动态创建子类实例
return enhancer.create();
}
public CglibProxy() {
}
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
System.out.println("前置代理");
//通过代理类调用父类中的方法
Object result = methodProxy.invokeSuper(o, objects);
System.out.println("后置代理");
return result;
}
}
导入cglib-2.2.jar包后显示没有找到类
导入asm-3.2.jar包能正常运行
输出:
前置代理
hello everyone
后置代理
最后
以上就是美丽铃铛为你收集整理的cglib动态代理以及出错解决的全部内容,希望文章能够帮你解决cglib动态代理以及出错解决所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复