0

既存のJavaライブラリを使用していて、.classファイルしか取得していないとします。しかし、私が期待している結果が得られませんでした。そこで、ソースコードを見て、そこにいくつかのロジックがあることを確認し、正しい値がライブラリコードに到達するかどうかを確認したいと思います。

どういうわけか.classファイルに到達する値をログに記録できますか?AOPを考えていましたか..?

外部ライブラリからのメソッド。

public void updateValues(String value, MyClass classValue)

たとえば、この行はソースコードに表示されますが、これを実行するときに、valueclassValueをログファイルに書き込むようにインターセプトしたいと思います。

4

2 に答える 2

2

ソースコードがあるのなら、なぜそれをデバッグしないのですか?

しかしとにかく-それはを使用して可能AOPです。その.jarファイルをクラスパスに含める必要があります。をすでに構成しているとしましょう。AOPそうすれば、必要なのは次のことだけです。

<aop:pointcut id="yourPointCut" expression="execution(* package.to.your.class.YourClass.updateValues(..))" />

このポイントカットを使用すると、updateValuesメソッドの値をログに記録できます。

于 2012-10-29T10:03:27.397 に答える
1

はい、AOP、特に AspectJ を使用してそれを行うことができます

  • コンパイル時のバイナリ ウィービング (アドバイスをターゲット JAR に組み込み、その新しいバージョンを生成する)
  • またはロード時のウィービング (JAR は変更されず、JVM 内の Java クラスのみが変更されます)。

AspectJ ドキュメントは非常に優れています。それはロケット科学ではなく、最初の新しい概念にすぎません。そのため、理解するのに少し時間がかかるかもしれませんが、エレガントで強力なツールです。

于 2012-11-04T11:13:45.787 に答える