首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal源码此处的疑惑
leomj
2019-01-22 14:29
如下截图中标注的内容,为何会进入这里?
action.getMethod().invoke(target, args)执行这个后,会去执行该方法里面的方法?
这里的原理是怎样?
@波总
项目:
JFinal
评论区
leomj
2019-01-22 14:30
应该是到 action.getMethod().invoke(target, args) 这段代码执行后就结束的,为什么还会进去
回复
JFinal
2019-01-22 15:43
@leomj
这里用到了 cglib 的功能,拦截器本质上就是在目标方法(targetMethod) 的前后额外增加代码,从而实现 AOP 功能
你所看到的 invoke() 方法首先是将拦截器的代码回调干净,然后就是使用 methodProxy.invokeSuper(target. targs)
其中的 invokeSuper(...) 就是调用 targetMethod,是被 AOP 拦截的目标方法
具体到应用中,methodProxy.invokeSuper(...) 就是调用你的 controller 中的 action 方法
回复
发送
我要反馈
麦芽 AI 平台
热门反馈
扫码入社