创建一个类 实现 BaseInterceptor接口,如下图:

用这个注解去声明拦截器 @MarsInterceptor(pattern = “*“)

pattern 为拦截规则,全部拦截 配置 * 即可,否则的话,必须以 / 开头

  1. @MarsInterceptor(pattern = "/demo*") // 这个实例表示拦截所有demo开头的接口
  2. public class LoginInters implements BaseInterceptor {
  3. // API执行前执行这个方法
  4. public Object beforeRequest(HttpMarsRequest httpMarsRequest, HttpMarsResponse httpMarsResponse) {
  5. return SUCCESS;
  6. }
  7. // API执行后执行这个方法,参数obj是接口的返回值
  8. public Object afterRequest(HttpMarsRequest httpMarsRequest, HttpMarsResponse httpMarsResponse, Object obj) {
  9. return SUCCESS;
  10. }
  11. /**
  12. * 由于这个拦截是拦截所有demo开头的接口
  13. * 所以如果在一堆demo开头的接口里,有两个接口叫demoA和demoB,那他们肯定也会被拦截
  14. * 但是我们想放这两个接口过,不拦截,这时候就可以采用下面的方法去配置
  15. */
  16. public List<String> exclude() {
  17. 在这个方法里返回这个拦截器不拦截的URL,/开头
  18. 本示例表示,demoAdemoB 直接通过,不拦截
  19. List<String> urls = new ArrayList<String>();
  20. urls.add("/demoA");
  21. urls.add("/demoB");
  22. return urls;
  23. }
  24. }

如果拦截器顺利放行的话,返回SUCCESS就好了,如果不给通过,那么直接返回 错误提示信息(如果返回对象会自定转成json)。