この投稿では、Spring MVC HandlerInterceptor、その使用法、および動作について説明します。
概要
行く前にHandlerInterceptorのは、について少し説明しましょうHandlerMapping .ITがあること、特定のURL.Soにメソッドをマップするために使用されるのDispatcherServletがリクエストを処理するとき、それを呼び出すことができるようになります。また、DispatcherServletはHandlerAdapterを使用してメソッドを呼び出します。
これで、コンテキストについて簡単に理解できました。これが、HandlerInterceptorが登場するときです。処理前、処理後、完了後のアクション(レンダリングビューオブジェクト)のような3つの段階があります。
プロジェクトでは、このインターセプターを使用して、リクエストの検証、リクエストの認証、繰り返しのコードの回避などを行うことができます…
プロセスのより良いアイデアを得るために図を見てください。
依存関係
スプリングハンドラーインターセプター
実装に進む前に、内容を見てみましょう。これはインターフェースであり、4つの主要なメソッドが含まれています。これらの方法を使用
して、あらゆる種類の前処理と後処理を行うことができます。
prehandle():実際のハンドラーが実行される前に呼び出されますが、ビューはまだ生成されていません。
postHandle():ハンドラーの実行後に呼び出されます。
afterCompletion():完全な要求が終了し、ビューが生成された後に呼び出されます。
afterConcurrentHandlingStarted():型やインスタンスの検査のために、非同期実行を開始しました。これは実際のシナリオでは非常にまれです。
preHandle()の実装は次のようになります。
これは、ハンドラーメソッドに到達する前にリクエストをインターセプトします。このメソッドはブール値を返します。
trueの場合、ハンドラー自体のプロセッサーへの別のインターセプターの実行チェーンで要求を続行できます。
falseの場合、springはインターセプターがリクエストを処理したと見なし、コントローラーがこのリクエストを処理することはありません。実際のハンドラーを含む実行チェーン内の将来の実行を中断します。
postHandle()の実装は次のようになります。
このメソッドは、HandlerAdapterの間、およびDispatcherServletの前に配置され、ビューをレンダリングして、インターセプターがModelAndViewオブジェクトに追加の属性を挿入できるようにします。このメソッドは、チェーン内の各インターセプターで逆の順序で呼び出されるため、最初のインターセプターが最後に呼び出されます。
afterCompletion()の実装は次のようになります。
これは、リクエストの処理が完了した後に呼び出されます。通常、この方法は、ある種のリソースのクリーンアップを実行するために使用できます。
このメソッドは、チェーン内の各インターセプターで逆の順序で呼び出されるため、最初のインターセプターが最後に呼び出されます。
実装
実装を行うには2つの方法があります。
1)HandlerInterceptorインターフェースを実装します。
2)HandlerInterceptorAdapter抽象クラスを拡張します。
2番目のアプローチを使用します。しかし、一日の終わりにはHandlerInterceptorが呼び出されます。図を参照してください。
構成
インターセプターを構成するには、2つの異なる方法があります。
Springbootプロジェクトの場合、WebMvcConfigurerを実装するSpringMVCConfigクラス内のaddInterceptors ()メソッドをオーバーライドする必要があります。このSpringMVCConfigクラスはカスタム実装です。
Springの場合、以下に示すように、mvc-dispatcher-servlet.xmlでXML構成を使用できます。これを用いて、我々は、要求が使用してインターセプタを経るべきコントローラを定義することができます:<マッピングMVC>と<MVC:除外マッピング>タグを。
HandlerInterceptorを使用したSpringbootRESTAPIアプリケーションの基本認証
HandlerInterceptorを使用したSpringbootRESTAPIアプリケーションのJWT認証
これがお役に立てば幸いです。ご不明な点がございましたら、コメントまたはメッセージを残してください。
はじめに Apache Kafka は、大規模で高スループット、フォールトトレラントなリアルタイム データ ストリーミングを処理するオープンソースの分散ストリーミング プラットフォームです。このシステムは、プロデューサーがトピックにメッセージをパブリッシュし、コンシューマーがそれらのトピックをサブスクライブしてメッセージを消費するパブリッシュ/サブスクライブ モデルに基づいています。
古いものは再び新しくなり、以前はキラキラ輝いていたものがくすんで見えます。私は、JNCO ジーンズが 1990 年代後半の他のファッションとともにダウンタウンのクールな子供たちの間で復活したことについて話しているのではありません。
アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。
今日の相互接続された世界では、サイバー攻撃の脅威がかつてないほど蔓延しています。サイバー犯罪者や国家主体は常に脆弱性を悪用して貴重なデータを盗もうとしており、あらゆる規模の組織に重大なリスクをもたらしています。
今日の非常につながりの深い世界では、メディア システムは世論の形成、ひいては民主的な意思決定において極めて重要な役割を果たしています。学者のロバート・マクチェズニーは、コミュニケーションの政治経済についての深い分析の中で、従来の通念に疑問を呈し、メディアに関する彼の言うところの「5つの真実」を提示します。