Retro-Active-Active-Actively Java Annotationsはメソッドに追加しますか?
-
26-10-2019 - |
質問
特定の方法にJavaアノテーションを追加するために.classファイルを変更する方法はありますか?基本的に、各クラスファイルのメソッドをJARファイルに通過し、特定のファイルに注釈を付けたいと思います。 JARファイルを使用している間、これは実行時にはないことに注意してください。むしろ、私が終わった後、私は注釈を使用してクラスファイルを変更したいと思っています。
ソースコードにアクセスできるので、自動ソースコード修飾子がある場合、それも機能します...
次のようなツールが必要だと思います Javassist また ASM. 。もしそうなら、私はどちらを使うべきですか、そして私はそれについてどのように進むでしょうか?
他のヒント
実際、これはAspectJの古典的なユースケースです。
declare @method : public * BankAccount+.*(..) : @Secured(role="supervisor")
直接的なバイトコード操作がより強力であることを認めますが、AspectJはよりユーザーフレンドリーであり、何か間違ったことをしているときにコンパイラ警告をすぐに提供します。
また、使用する場合 ロード時間織り, 、クラスロード時に織りが発生するため、元のライブラリjarを変更しておくことができます。
参照:
- 注釈を宣言します
- AspectJの動作 (本)
所属していません StackOverflow