在spring-boot项目中如何实现自定义过滤器

  介绍

在spring-boot项目中如何实现自定义过滤器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

传统的javaEE增加滤波器是在网上。xml中配置,如以下代码:

& lt; filter>   & lt; filter-name> TestFilter   & lt; filter-class> com.cppba.filter.TestFilter   & lt;/filter>   & lt; filter-mapping>   & lt; filter-name> TestFilter   & lt; url-pattern>/* & lt;/url-pattern>   & lt; init-param>   & lt; param-name> paramName   & lt; param-value> paramValue   & lt;/init-param>   & lt;/filter-mapping>

然而spring-boot中很明显不能这样实现,那怎么办呢?看完下面的教程,答案自然知道了。

<强>老方法(新方法请直接下拉)

1。创建自定义过滤器

包com.cppba.filter;
  
  进口javax.servlet。*;
  进口java.io.IOException;
  
  公共类TestFilter实现滤波器{
  @Override
  FilterConfig FilterConfig公共空init()抛出ServletException {
  
  }
  
  @Override
  公共空间的doFilter (ServletRequest ServletRequest, ServletResponse ServletResponse, FilterChain FilterChain)
  抛出IOException ServletException {
  System.out.println (“TestFilter");
  }
  
  @Override
  公共空间摧毁(){
  
  }
  }

2。在ApplicationConfiguration。java中增加一个@ bean

 @ bean
  公共FilterRegistrationBean testFilterRegistration () {
  
  FilterRegistrationBean登记=new FilterRegistrationBean ();
  登记。setFilter(新TestFilter ());
  registration.addUrlPatterns (“/*”);
  registration.addInitParameter (“paramName",“paramValue");
  registration.setName (“testFilter");
  registration.setOrder (1);
  返回注册;
  }

3。启动项目

你会看到控制台打印如下代码:

在spring-boot项目中如何实现自定义滤镜“> </p> <p> 4。访问项目</p> <p>最后我们访问以测试下http://127.0.0.1:8080 <br/> </p> <p>如果你看到控制台打印出:TestFilter </p> <p> <img src= @Order (1)//重点   @WebFilter (filterName=皌estFilter1" urlpattern=?*”)   公共类TestFilterFirst实现滤波器{   @Override   FilterConfig FilterConfig公共空init()抛出ServletException {      }      @Override   公共空间的doFilter (ServletRequest ServletRequest, ServletResponse ServletResponse, FilterChain FilterChain)   抛出IOException ServletException {   System.out.println (“TestFilter1");   filterChain.doFilter (servletRequest servletResponse);   }      @Override   公共空间摧毁(){      }   }

比较核心的代码是自定义类上面加上@WebFilter,其中@Order注解表示执行过滤顺序,值越小,越先执行

我们在spring-boot的入口处加上如下注解@ServletComponentScan:

 @SpringBootApplication (scanBasePackages=癱om.cppba")//重点
  @ServletComponentScan
  公共类应用程序{
  公共静态void main (String [] args)抛出UnknownHostException {
  SpringApplication应用=new SpringApplication (Application.class);
  环境环境=app.run (args) .getEnvironment ();
  }
  }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

在spring-boot项目中如何实现自定义过滤器