• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

4.2 Interceptor

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  Interceptor 可以对方法进行拦截,并提供机会在方法的前后添加切面代码,实现 AOP 的 核心目标。Interceptor 接口仅仅定了一个方法 void intercept(Invocation inv)。以下是简单的示例:

public class DemoInterceptor implements Interceptor {
	public void intercept(Invocation inv) { System.out.println("Before method invoking"); inv.invoke();
	System.out.println("After method invoking");
	}
}

以上代码中的 DemoInterceptor 将拦截目标方法,并且在目标方法调用前后向控制台输出 文本。inv.invoke()这一行代码是对目标方法的调用,在这一行代码的前后插入切面代码可以很 方便地实现 AOP。


Invocation 作为 Interceptor 接口 intercept 方法中的唯一参数,提供了很多便利的方法在拦 截器中使用。以下为 Invocation 中的方法:

方法

描述

void invoke()

传递本次调用,调用剩下的拦截器与目标方法

Controller getController()

获取 Action 调用的 Controller 对象(仅用于控制层拦截)

String getActionKey()

获取 Action 调用的 action key 值(仅用于控制层拦截)

String getControllerKey()

获取 Action 调用的 controller key 值(仅用于控制层拦截)

String getViewPath()

获取 Action 调用的视图路径(仅用于控制层拦截)

<T> T getTarget()

获取被拦截方法所属的对象

Method getMethod()

获取被拦截方法的 Method 对象

String getMethodName()

获取被拦截方法的方法名

Object[] getArgs()

获取被拦截方法的所有参数值

Object getArg(int)

获取被拦截方法指定序号的参数值

<T> T getReturnValue()

获取被拦截方法的返回值

void setArg(int)

设置被拦截方法指定序号的参数值

void setReturnValue(Object)

设置被拦截方法的返回值

boolean isActionInvocation()

判断是否为 Action 调用,也即是否为控制层拦截



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
4.3 Before发布时间:2022-02-02
下一篇:
4.1 概述发布时间:2022-02-02
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap