Java EE のインターセプターに関する概念を明確にしようとしています。Java EE 仕様を読みましたが、少し混乱しています。私のコンセプトをクリアできる便利なリンクやチュートリアルを教えてください。どのように、いつ、なぜインターセプターを使用するのですか?
4 に答える
インターセプターは、マネージド Beanに AOP 機能を追加するために使用されます。
@Interceptor アノテーションを使用して、Interceptor をクラスにアタッチできます。 クラスのメソッドが呼び出されるたびに、アタッチされたインターセプターがそのメソッド呼び出しをインターセプトし、そのインターセプター メソッドを実行します。
これは @AroundInvoke アノテーションを使用して実現できます (以下の例を参照)。
@AroundConstruct アノテーションを使用して、クラスのライフサイクル イベント (オブジェクトの作成、破棄など) をインターセプトできます。
Interceptor とServlet Filtersの主な違いは、Interceptorは WebContext 外で使用できますが、Filters は Web アプリケーションに固有のものです。
インターセプターの一般的な用途は、ロギング、監査、およびプロファイリングです。
より詳細な紹介については、この記事を読むことができます。 https://abhirockzz.wordpress.com/2015/01/03/java-ee-interceptors/
私は次の定義が好きです。インターセプターは、EJB メソッドへの呼び出しをインターセプトするコンポーネントです。これらは、EJB がアクセスされたときの監査とロギングに使用できます。
別の状況では、クライアントがデータベース内の特定のオブジェクトでトランザクションを実行する権限またはクリアランスを持っているかどうかを確認する必要がある状況で使用できます。ここでインターセプターが役に立ちます。クライアント/ユーザーがそのデータベース オブジェクトまたは EJB でそのメソッドを呼び出すことができるかどうかをチェックすることで、クライアント/ユーザーがその権限を持っているかどうかをチェックできます。
ただし、Java EE 設定/環境でそれらがどのように使用されるかについては、次の記事とチュートリアルを参照してください。