如何在Spring Boot中添加过滤器类? [英] How to add a filter class in Spring Boot?

查看:1242
本文介绍了如何在Spring Boot中添加过滤器类?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道,如果在Spring Boot中有一个 Filter 类的注释(对于Web应用程序)?也许 @Filter



我想在我的项目中添加自定义过滤器。



Spring Boot参考指南关于
FilterRegistrationBean

如果您想要设置第三方过滤器,您可以使用 FilterRegistrationBean
例如等效于web.xml

 < filter& 
< filter-name> SomeFilter< / filter-name>
< filter-class> com.somecompany.SomeFilter< / filter-class>
< / filter>
< filter-mapping>
< filter-name> SomeFilter< / filter-name>
< url-pattern> / url / *< / url-pattern>
< init-param>
< param-name> paramName< / param-name>
< param-value> paramValue< / param-value>
< / init-param>
< / filter-mapping>

这些将是 @Configuration 文件

  @Bean 
public FilterRegistrationBean someFilterRegistration(){

FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(someFilter());
registration.addUrlPatterns(/ url / *);
registration.addInitParameter(paramName,paramValue);
registration.setName(someFilter);
registration.setOrder(1);
退货注册;
}

@Bean(name =someFilter)
public Filter someFilter(){
return new SomeFilter();
}

上面是用spring-boot 1.2.3测试的


I wonder, if there is any annotation for a Filter class (for web applications) in Spring Boot? Perhaps @Filter?

I want to add a custom filter in my project.

The Spring Boot Reference Guide mentioned about FilterRegistrationBean, but I am not sure how to use it.

解决方案

If you want to setup a third-party filter you can use FilterRegistrationBean. For example the equivalent of web.xml

<filter>
     <filter-name>SomeFilter</filter-name>
        <filter-class>com.somecompany.SomeFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>SomeFilter</filter-name>
    <url-pattern>/url/*</url-pattern>
    <init-param>
       <param-name>paramName</param-name>
       <param-value>paramValue</param-value>
    </init-param>
</filter-mapping>

These will be the two beans in your @Configuration file

@Bean
public FilterRegistrationBean someFilterRegistration() {

    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(someFilter());
    registration.addUrlPatterns("/url/*");
    registration.addInitParameter("paramName", "paramValue");
    registration.setName("someFilter");
    registration.setOrder(1);
    return registration;
} 

@Bean(name = "someFilter")
public Filter someFilter() {
    return new SomeFilter();
}

The above was tested with spring-boot 1.2.3

这篇关于如何在Spring Boot中添加过滤器类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆