使用例:
クラス フィールドにカスタム アノテーション @MyContainer を配置し、そのようなすべてのフィールドに関連する Hibernate アノテーションを (フィールド タイプとプロパティに応じて) 自動的に追加します。
さらに、JAXB XmlType アノテーションをクラスに追加し、型名をクラス名に基づいて作成する必要があります。
さらに、タイプなどに基づいてフィールドに注釈を追加したいと思います。追加されたすべての注釈は、実行時に使用できるようにする必要があります (したがって、hibernate / JAXB はそれらを見つけることができます)。
次のオプションを認識しています。
- 前処理クラス ソース (不適切なオプション)
- javax.annotation.processing API によるコンパイル時の処理
- Java Assist などのツールを使用したコンパイル後の操作
- java.lang.instrument API を使用したクラスのロード中の操作
- AspectJでそれを行う(十分に強力ではありません)
私の主な目標は次のとおりです。
- デバッグのためにクラスとソース間の同期を維持する
- Maven と IDE (Eclipse / Intellij) の両方からの作業をサポート
すでにそのようなことを行っている人が、そのようなタスク (およびおそらく潜在的な落とし穴) に最適なアプローチを推奨できるかどうかを評価します。