1.javaアノテーションの定義
定義:アノテーション(アノテーション)とは、Javaがメタプログラム内の要素に、情報をメタデータに関連付ける方法と方法を提供することです。Annotion(annotation)はインターフェースであり、プログラムはリフレクションを介して指定されたプログラム要素のAnnotionオブジェクトを取得し、Annotionオブジェクトを介して注釈のメタデータを取得できます。
簡単に言えば:としても知られているアノテーション、Javaのアノテーションを、JDK5.0によって導入されたアノテーションメカニズムです。
素人の言葉で:Javaアノテーション(アノテーション)1。できること:クラス、メソッド、その他の場所に配置できる属性フィールドに従って、対応するコンテンツを保存します。2.取得できる情報:属性フィールドに保存されているコンテンツと場所(クラス、メソッドなど)。いくつかの例え:注釈は、標識、道路標識、灯台です。これらは、いくつかの情報を提供できますが、何もするための主導権を握りません。
質問:この場所を使用したが、原則を理解していない学生には質問があります。この説明によると、注釈は情報を保存するためのラベルであり、一部の情報のみを表示し、何もしません。これは、@ SpringBootApplication、@ MapperScan、@ RestControllerなどの通常のアノテーションと同じではありません。これらのアノテーションは、情報を表示するだけでなく、処理ロジックも実行するためです。このロジックはどこに記述されていますか?
回答:したがって、カスタムアノテーションを作成するには、アノテーションが正しく有効になるように、アノテーションの場所を事前に指定して知っておく必要があります。指定された位置で、このカスタムアノテーションが使用されているかどうかを判別し、アノテーション属性によって提供される情報を使用して、 AOPおよびリフレクションを通じてアノテーションが使用される位置を論理的に処理します。(アノテーションが実行される前にキャプチャして処理できる限り、aopを使用するだけではありません)
2.注釈の使用方法
(1)例:@RequestMappingを使用して表示します
(2)@RequestMappingのアノテーションソースコードを確認し、アノテーションを@Targetで使用できる場所と、アノテーションのライフサイクルを確認します:@Retention
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping 是另外一个自定义注解和这个组合了,在此不做讨论,有兴趣看后面教程
(3)上位4つのアノテーションは、このアノテーションの使用規則を記述するために使用されます。使用位置@Target({ElementType.METHOD、ElementType.TYPE}はMETHOD
、[メソッド]、TYPE
[クラス、インターフェイス、アノテーション]で使用されます。特定の注釈詳細は次のとおりです。
(4)その中で、ターゲットはjava1.8でも2つの属性を導入しました。
TYPE_PARAMETER
[タイプパラメータ]でJava1.8を使用して導入されましたTYPE_USE
Java 1.8を使用して、[型が宣言されている任意の場所]に導入します。
(5)次に、ここでのname属性など、アノテーションで定義された属性の使用方法を確認します。このアノテーションを呼び出す前後に実行されるロジックを確認する必要があります。
(6)特定の注釈を使用する方法について実装されているロジック、2つの側面:1。ドキュメントの説明(これは初心者にとって簡単です)2。注釈が参照されているソースコードを表示することによって、および実装されているビジネスロジック(これ始めたばかりの人にとっては難しいです)私が使用する日食のショートカットは、注釈のctrl + Gであるか、注釈の右クリックで使用法を検索して表示します
要約:アノテーションの使用は、特定のメソッド、クラスなどで直接@アノテーション名であり、非常に簡単です。使用する前に@targetで定義された使用場所を確認し、ソースコードとドキュメントを通じてアノテーションの使用ロジックを確認してください。