如何在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
提交
取消
