2018.08.14この記事は約6分で読めます。Bootに関する投稿です。Bootでサーブレットフィルタを設定するにはどうするか?、です。8.5.32組み込みのTomcatコンテナで動作させる前提です。Bootに追加したい機能(今回はフィルタ)を認識させることができます。Bootでフィルタを登録する方法ですが、1〜3で利用頻度もしくは一般的であろう順(著者感覚)に整理してみました。Bootでは、Servlet、Filter、Listenerに対し、それぞれServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBeanというInitializerクラスが用意されています。これらのクラス群は、ServletContextInitializerインタフェースを実装しており、ServletContextの初期化時に呼ばれ、各種コンフィグレーションを行なうようになっています。各種BeanはServletContextInitializerBeansコンテナ(ここではコレクションのデータコンテナを意味する)に登録されており、TomcatStarterのonStartupコールバックでコンフィグレーションが実行されます。bean;}}MyFilter、MyFilter2クラスは、通常のフィルタ定義と同様で、javax.servlet.Filterインターフェースを実装したクラスとして定義します。FilterのBean定義Servlet3.0で@WebFilterでフィルタ定義ができるようになりました。Bootで組み込みコンテナを使って起動した場合、この@WebFilter定義は無視されます。これらのアノテーションを使ったクラス(ライブラリなど)をアプリケーションでもそのまま利用したい場合、@ServletComponentScanをつけると認識してくれるようです。@ServletComponentScanを付与した場合、ServletComponentHandlerを継承している各種HandlerクラスであるWebFilterHandler、WebListenerHandler、WebServletHandlerで処理されます。@ServletComponentScanには、スキャンのベースとなるパッケージを指定します。@ServletComponentScanの指定がない場合は、アノテーションが指定されたクラスのパッケージからスキャンされます。etc}フィルタクラスに@WebFilterを指定します。ServletContextInitializerのBean定義フィルタ以外にもServletContextの初期化時に何らかの処理をしたい場合には、独自のServletContextInitializerを定義することができます。この場合1と同様、ServletContextInitializerBeansに登録され、コンテナ起動時にスタートアップコールバックが呼ばれます。コールバックの引数で、ServletContextオブジェクトが渡されるので、その中で必要な設定を行なう方法も可能だと思います。APIを呼んで、InitParameterやFilterを登録する例です。Bootを使ったWebアプリケーション開発について学んでいます。Bootであればサクッと作れそうと思ったからです。Security機能を有効化する方法について見てきました。Securityの認証機能の1つであるデータベースを使った認証の仕組みについて見ていきます。Bootに関する投稿です。Security)を使用する方法についてのメモです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。名前:moritetuITエンジニア地方でITエンジニアをしています。Webやスマフォアプリ、Hadoopなどのビッグデータに関するシステムに関わり、現在は企画開発の業務をしています。(必須)サイトタイトルとURLをコピーしました。