この投稿では、すべてのURLまたは特定のURLパターンにのみ適用できるSpringBootアプリケーションでカスタムフィルターを作成する方法について説明します。

SpringBootアプリケーションにフィルタークラスを登録する方法はいくつかあります。

1.フィルターインターフェイスを実装します

カスタムフィルターを作成するには、 Filter インターフェースを作成し、次のようなSpringステレオタイプの1つでフィルターに注釈を付けます。 @Component 春がそれを認識するために。

 
抽象クラスを拡張することもできます OncePerRequestFilter フィルタに注釈を付けます @Component。これを以下に示します。

2.タイプFilterRegistrationBeanの@Beanを登録します

上記のフィルターはすべてのリクエストに適用されます。フィルタを特定のURLパターンにのみ適用する場合は、 @Component フィルタクラス定義からの注釈と登録 @Bean タイプの FilterRegistrationBean 春に @Configuration.

たとえば、次のフィルタは一致するURLに適用されます /execute/* パターン。

3.サーブレットの@WebFilterアノテーションを使用する

サーブレットアノテーションも使用できます @WebFilter 特定のURLパターンのみを受け入れるフィルターを宣言します。以来 @WebFilter Springの注釈ではないので、使用する必要があります @ServletComponentScan それを登録するための注釈。これは一緒に追加できます @SpringBootApplication Mainクラスのアノテーション。

これで、SpringBootでフィルターを作成できます。