3 回答

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果要設(shè)置第三方過濾器,可以使用FilterRegistrationBean
。例如,相當(dāng)于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
文件中的兩個(gè)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測(cè)試的

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
沒有特殊的注釋來表示servlet過濾器。您只需聲明一個(gè)@Bean
類型Filter
(或FilterRegistrationBean
)。一個(gè)示例(向所有響應(yīng)添加自定義標(biāo)頭)在Boot自己的EndpointWebMvcAutoConfiguration中 ;
如果您只聲明Filter
它,它將應(yīng)用于所有請(qǐng)求。如果還添加了a FilterRegistrationBean
,則可以另外指定要應(yīng)用的各個(gè)servlet和url模式。
注意:
從Spring Boot 1.4開始,FilterRegistrationBean
不會(huì)棄用并簡(jiǎn)單地將包org.springframework.boot.context.embedded.FilterRegistrationBean
移到org.springframework.boot.web.servlet.FilterRegistrationBean
添加回答
舉報(bào)