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