2.6 configInterceptor(..)
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 级的配置将在后续章节中详细介绍。