问答详情
源自:2-4 使用 cglib 动态产生代理

private Enhancer enhancer=new Enhancer();其中的Enhancer 是干什么用的? enhancer.setCallback(this);设置回调是什么意思?????

public class CglibProxy implements MethodInterceptor
{
    private Enhancer enhancer=new Enhancer();//Enhancer是什么?有什么用?
    public Object getProxy(Class clazz){
        enhancer.setSuperclass(clazz);
        enhancer.setCallback(this);//设置回调是什么意思?以及设置回调有什么作用呢?
        return enhancer.create();
    }

提问者:java家洼 2016-05-01 12:32

个回答

  • 守林鸟
    2020-05-04 23:08:29

    因为老师也不会,照抄就行,全网就没有讲这个的博客。

  • 柒月君
    2017-11-15 15:46:03

    Enhancer

    的create()方法 用来创建 以该类为父类的 代理类(当然是父类的子类)

    然后回调函数 就是为了执行public Object intercept() 方法的. 

    在这个方法进行反射吧(我感觉跟Jdk代理差不多了,这行不一定准,不过前两行应该是对的)


    以上是研究一上午源码和结合文字说明 领悟到的

  • 我是小青年
    2017-04-28 10:18:13

    我在其它地方(chuanzhi,打名字不让我发)中看到了,这个回调函数就是给代理类执行时需要运行这个方法intercept,那么穿本类的实例进去,之后就会回调这个方法,实现动态代理。



  • MLYT
    2016-10-18 18:06:19

    是啊为什么不讲呢 难道是以前哪里讲过?现在不讲了?这个老师讲的课是我看慕课网里的课里让我听的最糊涂的课,其他的老师讲完都是后然开朗,这个老师讲的课能把我晕的一塌糊涂,没办法只能自己从其他渠道学习了

  • ATWJSW
    2016-09-28 11:55:16

    这都是最期待老师解释的地方,可惜都没讲。。。

  • SoWhat1115
    2016-05-07 00:56:18

    我一路学过来一直看你的头像

    好恶心啊 能不能换一张