如何在Spring Boot中添加过滤器类?
问题内容:
我想知道,FilterSpring Boot
中的类(对于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
@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;
}
public Filter someFilter() {
return new SomeFilter();
}
上面已经用spring-boot 1.2.3进行了测试