CGLib、ASM、BCEL (アスペクト)、および Javassist を使用して、実行時にクラスにフィールドを追加することを検討しました....
頭を整理すると、これらのバイトコード操作者は実際のクラスを更新せず、ユーザーが変更をダンプすることしかできないようです (CGLib や writeFile メソッドの場合と同様)。(a)(BCELでInputStreamを実行するのではなく)クラスをロードし、(b)クラスを更新するソリューションを見つけることを望んでいました。
多分これは正常ですか?人々は通常、プロキシを作成し、プロキシを渡しますか?
私がやりたいことは、特定の注釈を持つフィールド (プロパティではない) を探すフレームワークにオブジェクトを渡す前に、フィールド (注: get/set メソッドによるプロパティではない) を追加することです。したがって、「クライアント」は、追加のフィールドを挿入したいターゲット クラスを作成しています。これらのオブジェクトを操作したいサービス層への AOP 呼び出しをインターセプトします。