如何在Spring Boot中添加过滤器类?我想知道,如果Filter在Spring Boot中有一个类(用于Web应用程序)的注释?也许@Filter吧?我想在我的项目中添加自定义过滤器。Spring Boot Reference Guide提到了 FilterRegistrationBean,但我不知道如何使用它。
3 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
如果要设置第三方过滤器,可以使用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
@Beanpublic FilterRegistrationBean someFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(someFilter()); registration.addUrlPatterns("/url/*"); registration.addInitParameter("paramName", "paramValue"); registration.setName("someFilter"); registration.setOrder(1); return registration;} public Filter someFilter() { return new SomeFilter();}
以上是用spring-boot 1.2.3测试的
RISEBY
TA贡献1856条经验 获得超5个赞
没有特殊的注释来表示servlet过滤器。您只需声明一个@Bean
类型Filter
(或FilterRegistrationBean
)。一个示例(向所有响应添加自定义标头)在Boot自己的EndpointWebMvcAutoConfiguration中 ;
如果您只声明Filter
它,它将应用于所有请求。如果还添加了a FilterRegistrationBean
,则可以另外指定要应用的各个servlet和url模式。
注意:
从Spring Boot 1.4开始,FilterRegistrationBean
不会弃用并简单地将包org.springframework.boot.context.embedded.FilterRegistrationBean
移到org.springframework.boot.web.servlet.FilterRegistrationBean
添加回答
举报
0/150
提交
取消