Javaで呼び出されるメソッドの後にメソッドを実行してから、methodA )が呼び出され、続いて別のメソッドが呼び出され、というメソッドAfterA()が呼び出されます。これは、Junitが(@Before、@Test、@Afterを使用して)アノテーションを使用しているのと非常によく似ているので、リフレクションを使用して可能でなければならないと思っていますが、とても良いヒントはありません。(前と私は<em>methodA()</em>を呼び出した後、第1の方法はmethodBeforeA()</em>が呼び出される<em>という名前のようなJavaプログラムを書くためにしようとしている
Q
(前と私は<em>methodA()</em>を呼び出した後、第1の方法はmethodBeforeA()</em>が呼び出される<em>という名前のようなJavaプログラムを書くためにしようとしている
8
A
答えて
5
AspectJでは、メソッドエントリの前と終了後にカットポイントを指定できます。 AspectJので
http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html
、ポイントカットは、プログラムフロー内の特定の参加点を選び出します。単一
int
パラメータを持つつまり、Point
のvoid setX
方法 - 例えば、各アウトポイントカットcall(void Point.setX(int))
ピック署名ボイド
Point.setX(int)
を有するメソッドの呼び出しである点に参加します。
3
これは、他のメソッドへの呼び出しを挿入するためにメソッドコードを変更する必要があります。 Javaのリフレクションでは、多くのことができますが、メソッドコードを動的に変更することはできません。
JUnitとは何が違うのですか?それは、@Before
を注釈付きの各メソッドを特定し@Test
、および@After
、その後の線に沿って何かを行います。あなたは確かにあなたが「前」と後にメソッド「後」を呼び出すことを確認するために、このような何かを行うことができ
for (Method t : testMethods) {
for (Method b : beforeMethods)
b.invoke();
t.invoke();
for (Method a : afterMethods)
a.invoke();
}
を毎回を呼び出してください。しかし、すべての発信者に同じことを強制することはできません。
関連する問題
- 1. しようとしている:ボタンを呼び出して、<?php include( "")?>
- 2. なぜ `<< std :: endl`が呼び出したい演算子を呼び出さないのですか?
- 3. 私は<code>readFile()</code>はしてFileNotFoundExceptionをスローしますが、以下のように、<code>main</code>ない、<code>main</code>方法で<code>readFile()</code>という名前のメソッドを呼び出したときにFileNotFoundException
- 4. は、私はからいくつかのhttpのparamsでREST呼び出しを実行しようとしている...</p> <p>をresttemplateと
- 5. は私がAJAX</em>を使用して<em>WCFサービスを呼び出すためにしようとしています
- 6. ArrayListの.toString()呼び出しを1行にまとめる方法<Object>
- 7. パイソン - 私は関数を作成し、私は<code>**criterias</code>を呼び出すキーワードとして、パラメータのセットでそれを呼び出すことができるようにしたい関数の引数として(ステップなし)
- 8. 私のコード <p></p> ...私は関数が呼び出されたときにイベントを添付したいのですが、それは<code>addEventListener</code>を使用して動作していないようでJavascriptの
- 9. 呼び出し可能<Object>呼び出し方法
- 10. はこれが動作しない</p> <pre><code>attr_accessor :attr_list def attr_list [:x1, :y1, :x2, :y2] end </code></pre> <p>、私はこのようなメソッド呼び出しで構築あれば容易に行うことができる多数の属性を作成したいメソッド呼び出し
- 11. 関数を呼び出すと、それを私は以下</p> <p><img src="https://i.stack.imgur.com/1Rw9b.png" alt="enter image description here"></p> <p>のようなJSONオブジェクトという名前のデータを持っている
- 12. は、どのように呼び出しのコンテキストメニューのために1行であることを</p> <p>をリストの2行を収集するためにどのように呼び出したContextMenu
- 13. Androidのナビゲーションドロワー - <strong>content_main.xml</strong>であり、私は、他の<strong>FragmentActivity.class</strong>を呼び出した後にナビゲーションドロワーからベース<strong>content_main.xml</strong>(レイアウト)を呼び出す方法を知りたいと思った
- 14. は、なぜ私は<strong>輸出</strong>私はこのような「インポート」という名前の関数にしたいES6
- 15. は、開いているファイルを閉じるためにcloseメソッドを呼び出します<strong>終了</strong>を呼び出すように私は、FPは私が開いたと知っているのpython
- 16. 他のレイアウトから呼び出しようとしたときにsetContentViewが呼び出されない
- 17. のWindows 10:プログラムは、彼らが我々が<strong>MAIN.EXE</strong>または<strong>MAIN.EXE</strong>にプログラムの名前を変更という名前のプログラムを作成するとき、プログラムのようにポップアップ表示されるウィンドウ10で
- 18. は私が<strong><em>重複メール</em></strong>をチェック<strong><em>アヤックス</em></strong>を持つメソッドを呼び出すようにしようとしている
- 19. は、どのようにAPI呼び出しを作るしようとしている3.5</p> <p>
- 20. リアクションを使用してネストされたAPIを呼び出しますか?私が反応使用してそれらに呼び出しを行う方法を知っていただきたいと思い</p> <pre><code>{ "farmer": [ { "crops": "corn" } ], "activities":{ "hobbies": "swimming" }, "name: Todd" } </code></pre> <p>:
- 21. この場合、どのようなコンストラクタが呼び出されますか?</p><code>foo()</code>戻って作成された一時的な値のために呼び出されたどのようなコンストラクタ <pre><code>int i = foo().bar(); </code></pre> <p>:?
- 22. アクセス私はちょうど私がアクセスしようとしている6</p> <p>コントローラのExtJSを使用して別のコントローラからコントローラのメソッドを呼び出すためにしようとしている別のコントローラのExtJS 6
- 23. Iはそれぞれに名前しようとしている</p> <blockquote> <p>VARテスト= [{...}、{...}、{...}]</p> </blockquote> <p>以下のように、私は変数を以下ているネストされたオブジェクトに
- 24. パフォーマンスは値による呼び出し、私は最近、様々なScalaのログ図書館で見てきたし、それらの大半は</p> <pre><code>def debug(s: => String) </code></pre> <p>としてのログ機能を実装による呼び出し名
- 25. 私はarguments.lengthを使用して<strong>という名前の関数</strong>の長さを取得しようとしていた
- 26. は、どのように私はC#で書かれた<code>dll</code>私自身を持って、私のDLLを呼び出すと、PowerShellのスクリプト
- 27. 私はhtmlタグ<code>header > div.column</code> ため<strong>ため</strong>属性にアクセスしようとしているセレン及びCssSelector
- 28. JNI NewStringUTFは、私は、エラーがこの機能で</p> <blockquote> <p>NewStringUTF機能で</p> </blockquote> <p>APPというクラッシュを呼び出すために取得しています多くのファイルのためにアンドロイド
- 29. メイクは - 私は<code>foreach</code>内でいくつかの(動的な名前の)変数を定義する<code>make</code>の<code>eval</code>機能を使用したいと同じevalを呼び出し
- 30. ユーレカフォーム - 私は第二行は第1の選択されたセルに依存して、ユーレカ</strong><strong>に<em><strong>セグメント化された行</strong></em>のペアを作成しようとしている.hidden述語を
正直な質問:AspectJのアドバイスは、Reflection経由でターゲットメソッドが呼び出されたときにも実行されますか? –
@AlistairIsrael、http://www.eclipse.org/aspectj/doc/released/faq.php#q:reflectiveCallsは必ずしもそうとは限りません。 –
私は正しい方向に向いてくれてありがとう。このblogpostを見て、私が探していたものを正確に提供する。http://www.mkyong.com/spring3/spring-aop-aspectj-annotation-example/ – Vanp