質問

特定の方法にJavaアノテーションを追加するために.classファイルを変更する方法はありますか?基本的に、各クラスファイルのメソッドをJARファイルに通過し、特定のファイルに注釈を付けたいと思います。 JARファイルを使用している間、これは実行時にはないことに注意してください。むしろ、私が終わった後、私は注釈を使用してクラスファイルを変更したいと思っています。

ソースコードにアクセスできるので、自動ソースコード修飾子がある場合、それも機能します...

次のようなツールが必要だと思います Javassist また ASM. 。もしそうなら、私はどちらを使うべきですか、そして私はそれについてどのように進むでしょうか?

役に立ちましたか?

解決 2

1時間ほどグーグルで回った この記事 私の質問に完全に答えているようです:使用 ASM. 。変更されたバイトコードを使用してクラスファイルを書き込むには、使用してください クラスライター.

さて、仕事に取り掛かる時が来たと思います。 :)

他のヒント

実際、これはAspectJの古典的なユースケースです。

declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")

直接的なバイトコード操作がより強力であることを認めますが、AspectJはよりユーザーフレンドリーであり、何か間違ったことをしているときにコンパイラ警告をすぐに提供します。

また、使用する場合 ロード時間織り, 、クラスロード時に織りが発生するため、元のライブラリjarを変更しておくことができます。

参照:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top