JSR 269 - 「プラグ可能な注釈処理API」 - 2006年リリース。 このAPIのよく知られた使用法は、JPA 2.0(JSR 317,2009)のメタモデル生成でした。JPA 2.0以外のよく知られているJSR-269(プラグ可能アノテーション処理API)ユーザーですか?
その他の標準化された、または少なくとものよく知られたフレームワークでは、そのAPIを使用していますか?
JSR 269 - 「プラグ可能な注釈処理API」 - 2006年リリース。 このAPIのよく知られた使用法は、JPA 2.0(JSR 317,2009)のメタモデル生成でした。JPA 2.0以外のよく知られているJSR-269(プラグ可能アノテーション処理API)ユーザーですか?
その他の標準化された、または少なくとものよく知られたフレームワークでは、そのAPIを使用していますか?
Project Lombokは「よく知られている」と思われます。 純粋なJSR-269実装ではないようですが、this threadを参照してください。
GWT 2.4はRequestFactory
フレームワークを導入し、を使用するプロジェクトを検証するためにJSR-269注釈プロセッサーを提供しました(を参照)。
Blaze CBAV(Constraint Based Annotation Validation)はまだ開発中ですが、すでにコンパイル時の検証が可能です。基本的には、そのライブラリを使用してアノテーションにメタ情報を追加して、自分の条件に基づいてコンパイラエラーを生成することができます。
事前定義されている便利なデフォルトの制約がいくつかありますが、バリデータを実装して自分自身を定義し、制約注釈を使用して制約をバインドすることもできます。バリデータの実装は、独自の制約を使用するときに、クラスパス内でコンパイルされた形式で存在する必要があるため、別々にパッケージ化することをお勧めします。あなたはGitHubのでプロジェクトを見つけることができます
public @interface MyAnnotation{
@UniqueValueConstraint(scope=ConstraintScope.CLASS, errorMessage="This value must be unique within class level!")
String value();
}
public class MyClass{
@MyAnnotation("test")
void test1(){}
@MyAnnotation("test")
void test2(){} // Compiler error with your message ;)
}
:
は、たとえば、あなたが一度クラス内のアノテーションの与えられた値にのみ発生することを確認してください可能性があり)、それを試してみると可能性を探りますhttps://github.com/Blazebit/blaze-cbav
Daggerは、AndroidとJava用の高速依存インジェクタです。 Daggerには、モジュールと注入を検証するアノテーションプロセッサが含まれています。このプロセッサは厳密であり、バインディングが無効または不完全な場合、コンパイラエラーが発生します。
GoogleのAutoプロジェクトでは、とりわけ、不変の値タイプを生成するためにJSR-269を使用しています。また、独自の注釈プロセッサを簡単に作成できるライブラリも提供しています。
ライブラリHexaBindingライブラリはJSR 269を使用してバインディングシステムに統合されたPOJOサブクラスを自動的に生成し、開発者があまりに多くのボイラープレートコードを書いてしまうのを軽減します。
あなたはここでそれを見つけることができます:https://github.com/ltearno/hexa.tools/blob/master/hexa.binding/README.md
をそして不変オブジェクトビルダーを生成するための注釈処理を使用していますImmutablesライブラリもあります。
MapStructは、タイプセーフなBeanからBeanへのマッピング用のJSR 269ベースのコードジェネレータです。