Spring Boot にフィルタークラスを追加するにはどうすればいいですか? 質問する

Spring Boot にフィルタークラスを追加するにはどうすればいいですか? 質問する

FilterSpring Boot にはクラス (Web アプリケーション用)のアノテーションはありますか? おそらくあるでしょう@Filter?

プロジェクトにカスタム フィルターを追加したいです。

Spring Boot リファレンス ガイドについて言及しましたFilterRegistrationBeanが、どのように使用すればよいかわかりません。

ベストアンサー1

サードパーティのフィルターを設定する場合は、 を使用できます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>

ファイル内の 2 つの Bean は次のようになります@Configuration

@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 でテストされました。

おすすめ記事