为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Spring Boot中添加过滤器类?

如何在Spring Boot中添加过滤器类?

catspeake 2019-08-06 14:25:07
如何在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测试的


查看完整回答
反对 回复 2019-08-06
?
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


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 855 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信