0

OSGi特定の注釈でマークされたすべてのメソッドの入力、出力、例外 (存在する場合) パラメーターをログに記録できるログ バンドルを作成しようとしています。

Spring AOPログインを設定しようとしましたOSGiが、失敗しました。

私が知る必要があるのは、メソッドがいつ呼び出されているかを判断する方法だけですか? たとえば、注釈で注釈が付けられたクラス内のすべてのメソッドをスキャンし、それらのメソッドを配列またはリストに持っています。

たとえばgetStatus、 、getDetails、 の3 つの方法がありgetSomethingます。ユーザーがgetDetailsメソッドを呼び出した場合、このメソッドがいつ呼び出されたかをどのように知る必要がありますか?

4

1 に答える 1

0

メソッド呼び出しを検出するには、コードをインストルメント化する必要があります。実行時にこれを行うには、バイトコード操作が必要です (私の知る限り、これは Spring AOP が行うことです)。または、インストルメント化された Java コードを生成するカスタム前処理ステップを使用して、コンパイル時にコードをインストルメント化することもできますが、それがはるかに簡単かどうかはわかりません。

あなたの最善の策は、Spring AOP を試してみることだと思います。

于 2012-08-29T06:58:31.493 に答える