首页
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 方法
回复
发送
我要反馈
热门反馈
扫码入社