10.2. JBoss AOP でアスペクトを作成


簡単に説明すると、すべての AOP フレームワークは、横断的関心事を実装する方法とプログラムコンストラクト (プログラミング言語またはタグのセット) の 2 つを定義し、コードスニペットの適用方法を指定します。JBoss AOP、横断的関心事、ユーザーがどのように JBoss Enterprise Application Platform でメトリクスアスペクトを実装できるか見てみましょう。
独自の Java クラスにメトリクス機能をカプセル化することが JBoss AOP にメトリックスアスペクトを作成する最初のステップになります。 以下のコードは、 最初のコード例の BankAccountDAO.withdraw() メソッドにある try/finally ブロックを JBoss AOP インターセプタークラスの実装である Metrics に抽出します。
次のリストは JBoss AOP インターセプターへのメトリクス実装を表しています。
01. public class Metrics implements org.jboss.aop.advice.Interceptor
02. {
03.   public Object invoke(Invocation invocation) throws Throwable
04.   {
05.     long startTime = System.currentTimeMillis();
06.     try
07.     {
08.       return invocation.invokeNext();
09.     }
10.     finally
11.     {
12.       long endTime = System.currentTimeMillis() - startTime;
13.       java.lang.reflect.Method m = ((MethodInvocation)invocation).method;
14.       System.out.println("method " + m.toString() + " time: " + endTime + "ms");
15.     }
16.   }
17. }
Copy to Clipboard Toggle word wrap
JBoss AOP では、 Metrics クラスが withdraw()をラップします。 呼び出しコードが withdraw() を呼び出すと、 AOP フレームワークがメソッドコールをパーツに分解し、 パーツを呼び出しオブジェクトにカプセル化します。 その後、 呼び出しコードと実際のメソッドボディーの間に存在するすべてのアスペクトをフレームワークが呼び出します。
AOP フレームワークによるメソッドコールの分解が終了すると、 3 行目でMetricsの呼び出しメソッドを呼び出します。 8 行目は実際のメソッドをラップし、実際のメソッドへ委譲します。try/finally ブロックを使用してタイミングを実行します。 13 行目は Invocation オブジェクトからメソッドコールのコンテキスト情報を取得します。 14 行目はメソッド名と算出されたメトリクスを表示します。
独自のオブジェクト内に Metrics コードが存在することにより、後で追加の測定を簡単に拡張し取得することができます。アスペクトにカプセル化されたメトリクスの適用方法を見てみましょう。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat