在这里增加功能的invoke是系统自动调用的吗?

在这里增加功能的invoke是系统自动调用的吗?

        UserService userServiceProxy = (UserService)Proxy.newProxyInstance(userService.getClass().getClassLoader(),
                userService.getClass().getInterfaces(),
                invocationHandler);
        userServiceProxy.createUser();

在这个代码里我没有调用invoke方法为什么还是会输出增强后的时间?

在这里增加功能的invoke是系统自动调用的吗?

具体流程是怎样的可以解释一下吗,还有这个和环绕通知的ProceedingJoinPoint.proceed()
又有什么关系呢

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、这里可以这样理解:实现了代理之后,调用UserService中的方法都相当于调用了这个invoke方法。

    2、同学的说法是正确的,当实现了动态代理后,会调用解析这个调invoke方法。

    3、同学是问invoke方法的调用过程吗。

如果是,可以简单这样理解:就是先新建其类对象(实例),然后把它传入newProxyInstance方法中,在底层中会自动解析并用它来调用它的invoke方法,实现对方法的扩展。

如果再具体涉及到底层中的执行过程,老师也无法准确描述,目前同学这里记住会用即可。

    4、这个动态代理和环绕通知的ProceedingJoinPoint.proceed()并没有什么关系,这里老师只是想过过环绕通知来对比理解这个环绕通知。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师