当前位置: 移动技术网 > IT编程>开发语言>Java > SpringBoot 2 快速整合 Filter过程解析

SpringBoot 2 快速整合 Filter过程解析

2019年09月09日  | 移动技术网IT编程  | 我要评论

概述

springboot 中没有 web.xml, 我们无法按照原来的方式在 web.xml 中配置 filter 。但是我们可以通过 javaconfig(@configuration +@bean)方式进行配置。通过filterregistrationbean 将自定义 filter 添加到 springboot 的过滤链中。

实战操作

实战操作通过定义一个拦截所有访问项目的url的 filter来进行演示的。

首先定义一个统一访问 url 拦截的 filter。代码如下:

public class urlfilter implements filter {
  private logger log = loggerfactory.getlogger(urlfilter.class);
  @override
  public void dofilter(servletrequest request, servletresponse response, filterchain chain)
      throws ioexception, servletexception {
  httpservletrequest httpservletrequest = (httpservletrequest) request;
    string requesturi = httpservletrequest.getrequesturi();
    stringbuffer requesturl = httpservletrequest.getrequesturl();
    log.info("requesturi:" +requesturi+" "+"requesturl:"+requesturl);
    chain.dofilter(httpservletrequest, response);
  }
}

通过 javaconfig方式配置 springboot 过滤链类 filterregistrationbean,具体代码如下:

@configuration
public class filterconfig {
  @bean
  public filterregistrationbean filterregistration() {
    filterregistrationbean registration = new filterregistrationbean();
    registration.setfilter(new urlfilter());
    list<string> urllist = new arraylist<string>();
    urllist.add("/*");
    registration.seturlpatterns(urllist);
    registration.setname("urlfilter");
    registration.setorder(1);
    return registration;
  }
}

filterregistrationbean 中方法介绍:

  • registration.setfilter(filter filter):设置我们自定义filter对象。
  • registration.seturlpatterns(collection urlpatterns):设置自定义filter需要拦截的url的集合。
  • registration.setname(string name): 设置自定义filter名称。
  • registration.setorder(int order):设置自定义filter拦截顺序。

测试

启动 spirngboot 项目并通过游览器访问我们的项目下的 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网