拦截器

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

创建一个类 实现 BaseInterceptor接口

  • 在类上面添加@MarsInterceptor(pattern = “*“)注解
  • pattern属性为拦截规则,全部拦截 配置 * 即可,否则的话,必须以 / 开头
  • 其他的说明请看示例中的注释
  • 如果拦截器顺利放行的话,返回SUCCESS就好了,如果不给通过,那么直接返回 错误提示信息(如果返回对象会自定转成json)。
  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. }