2.6 configInterceptor(..)

优质
小牛编辑
126浏览
2023-12-01

1、配置全局拦截器

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

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

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

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

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

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

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