拦截器

这个拦截器就是我们印象中的拦截器,用于在接口执行前 执行的,具体的实现方式也很简单,可以看如下示例

创建一个类 实现 BaseInterceptor接口

  • 在类上面添加@MarsInterceptor(pattern = "*")注解
  • pattern属性为拦截规则,全部拦截 配置 * 即可,否则的话,必须以 / 开头
  • 其他的说明请看示例中的注释
  • 如果拦截器顺利放行的话,返回SUCCESS就好了,如果不给通过,那么直接返回 错误提示信息(如果返回对象会自定转成json)。
@MarsInterceptor(pattern = "/demo*") // 这个实例表示拦截所有demo开头的接口
public class LoginInters implements BaseInterceptor {

    // API执行前执行这个方法
    public Object beforeRequest(HttpMarsRequest httpMarsRequest, HttpMarsResponse httpMarsResponse) {
        return SUCCESS;
    }

    // API执行后执行这个方法,参数obj是接口的返回值
    public Object afterRequest(HttpMarsRequest httpMarsRequest, HttpMarsResponse httpMarsResponse, Object obj) {
        return SUCCESS;
    }

    /**
     * 由于这个拦截是拦截所有demo开头的接口
     * 所以如果在一堆demo开头的接口里,有两个接口叫demoA和demoB,那他们肯定也会被拦截
     * 但是我们想放这两个接口过,不拦截,这时候就可以采用下面的方法去配置
     */
    public List<String> exclude() {
        在这个方法里返回这个拦截器不拦截的URL,/开头
        本示例表示,demoA,demoB 直接通过,不拦截
        List<String> urls = new ArrayList<String>();
        urls.add("/demoA");
        urls.add("/demoB");
        return urls;
    }
}

results matching ""

    No results matching ""