如何在Spring Boot中添加过滤器类? [英] How to add a filter class in 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屋!