0

最近AspectJ LTWを使い始めました。AJDTで Eclipse を使用しています。私は基本的に「outjar」オプションを使用して、コンパイルされた .aj ファイルで「AspectJ ライブラリ (.jar ファイル)」を作成します。

次のステップは、「通常の」Eclipse Java プロジェクト内でこの jar ファイルを使用することです。このプロジェクトは、javaagent パスに aspectjweaver.jar ライブラリがあれば完璧に動作します。

-javaagent:lib/aspectjweaver.jar

私の次の目標は、この「通常の」Java プロジェクト内で2 番目の aop.xml ファイルを使用することです。META-INF/aop.xmlファイルがクラスローダーの検索パスにある場合でも、これはうまく機能します。今、私はこれを発見しました:

http://www.eclipse.org/aspectj/doc/released/README-1612.html

(「aop.xml でより柔軟なポイントカット/コード ワイヤリング」までスクロールします)

次の XML 仕様は問題なく機能します。

<aspectj>
 <aspects>
  <concrete-aspect name="MyAspect">
   <before pointcut="set(* *.myStringField) AND args(message)"
       invokeClass="my.package.SomeRegularJavaClass" invokeMethod="someMethod(JoinPoint tjp, java.lang.String message)" />
  </concrete-aspect>
 </aspects>
</aspectj>

しかし、私が実際に興味を持っているのは、自分の引数/変数/メッセージを method に「渡す」ことsomeMethodです。何かのようなもの:

<aspectj>
 <aspects>
  <concrete-aspect name="MyAspect">
   <before pointcut="set(* *.myStringField) AND args(message)"
       invokeClass="my.package.SomeRegularJavaClass" invokeMethod="someMethod(JoinPoint tjp, java.lang.String message, java.lang.String "customMessage")" />
  </concrete-aspect>
 </aspects>
</aspectj>

それで、文字列(たとえば)をメソッドに渡す方法はありsomeMethodますか?または、利用可能な他のオプションはありますか?

4

0 に答える 0