2.6 configInterceptor(..)

1、配置全局拦截器

configInterceptor 方法用来配置全局拦截器,全局拦截器分为两类:控制层、业务层,以下是配置示例:

  1. public void configInterceptor(Interceptors me) {
  2.     // 以下两行代码配置作用于控制层的全局拦截器
  3.     me.add(new AuthInterceptor());
  4.     me.addGlobalActionInterceptor(new AaaInterceptor());
  5.     
  6.     // 以下一行代码配置业务层全局拦截器
  7.     me.addGlobalServiceInterceptor(new BbbInterceptor());
  8. }

以上 me.add(…) 与 me.addGlobalActionInterceptor(…) 两个方法是完全等价的,都是配置拦截所有 Controller 中 action 方法的拦截器。而 me.addGlobalServiceInterceptor(…) 配置的拦截器将拦截业务层所有 public 方法。

注意:以上描述中所谓的 “业务层” 本质上是指除了 “控制层” 以外的含义,不一定要求是业务层,也可以是一个除了 controller 以外的任何一个类。

以上方式配置的拦截器可以在方法定义之处通过 @Clear 注解进行移除,具体用法见后续有关 @Clear 注解的章节。

2、拦截器配置层次/粒度

Interceptor 配置粒度分为 Global、Routes、Class、Method 四个层次,其中以上小节配置粒度为全局。Routes、Class 与 Method 级的配置将在后续章节中详细介绍。