创建一个类 实现 BaseInterceptor接口,如下图:
用这个注解去声明拦截器 @MarsInterceptor(pattern = “*“)
pattern 为拦截规则,全部拦截 配置 * 即可,否则的话,必须以 / 开头
@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;
}
}
如果拦截器顺利放行的话,返回SUCCESS就好了,如果不给通过,那么直接返回 错误提示信息(如果返回对象会自定转成json)。