Javaのアノテーションとは何ですか

王林
リリース: 2020-08-05 17:33:49
転載
2825 人が閲覧しました

Javaのアノテーションとは何ですか

アノテーションとリフレクションは、Java では無視されがちですが、非常に重要です。メインストリームの Spring では、アノテーションがたくさんあります。アノテーションとアノテーションは非常に似ています。実は本質はほとんど同じで、コメントはプログラマが見るもの、アノテーションはプログラムが見るものです。

(推奨チュートリアル: java 学習 Web サイト )

上記のとおり、次の 2 つの点に注意してください。

1.アノテーションとアノテーションは非常によく似ています。

2. コメントはプログラマ向けであり、アノテーションはプログラム向けです。

アノテーションの最初の理解は、上記の 2 つの点から始まります。アノテーションを見てみましょう最初に例を示します。

Javaのアノテーションとは何ですか

これはコメントですが、コメントは何に使用されるのでしょうか?

簡単に言うと、関連するクラスやメソッド (ここでは Test クラスなど) を説明するものです。上記のコメントから、このクラスを誰が作成したのか、何をするのか、いつ作成されたのかが大まかにわかります。 、 、実際にはさらに多くの情報が含まれる可能性があります。

だから、コメントが何のためにあるのかを理解する必要があります。コメントは私たちのようなプログラマのためのものです。コメントを見れば、ああ、このクラスはこうなる...

と理解できます。

コメントはプログラマが読むものですが、注釈はどうなるでしょうか?単語の違いは 1 つだけです。注釈はプログラムが読み取るためのものなので、最初に覚えておいてください。

アノテーションのさらなる理解

まず、コードに記述した次のようなアノテーションが何であるかを直観的に理解しましょう:

/**
 * @Description 用户类
 * @Author ithuangqing
 * @Date 2020-07-31 15:33
 **/
@Repository
public class UserBean {
    private String name;
    private int age;
}
ログイン後にコピー

ここの @Repository これはただのアノテーションです。このコードを見てください。コメントが付いています。アノテーションを見ると、すべて理解できます。でも、@Repository を見ても、あまり理解できません。これは何ですか、何ですか。それは用途ですか?

それで、調べてみると、「ああ、これはアノテーションだ」ということが大体わかりました。このアノテーションを使用すると、UserBean が Spring コンテナにロードされます。この情報はわかりますが、実際に何をするのか? どのように機能するのか、つまり、処理のために UserBean を Spring に渡す方法ですが、内部実装はわかりません。

しかし、はっきりとはわかっていないけれど、はっきりとわかっていることがあります。特定のプログラム、つまり特別なプログラムがあるのですが、この UserBean に @Repository があることを確認すると、このプログラムはこの UserBean を Spring コンテナにロードする必要があることがわかりますので、このプログラムを開始します一連の操作領域を実行して、この UserBean を Spring コンテナにロードします。

(ビデオチュートリアルの推奨: java 学習)

アノテーションとは何かをさらに要約しましょう:

プログラムでは、アノテーションは、通常、クラス、メソッド、インターフェイスなどをマークするために使用される特別なマークと考えることができます。これらのマークには、コンパイル中に使用できるなどのいくつかの特性があります ( javac コマンドは、Java ソース ファイルをバイトコード ファイル class にコンパイルします)。クラスがロードされて実行されます (Java コマンドを使用してバイトコード ファイルを実行すると、クラスのライフサイクルが開始され、ロードからアンロードまで) が読み取られます (通常、これらのアノテーションを読み取るための特別なプログラムがあり、リフレクション技術を使用して解析します)注釈を取得し、取得した情報に基づいて対応する処理を実行します)

はい、注釈について次の知識点を知っておく必要があります:

注釈用の特別なプログラムがあります それを読んで解析してください、メッセージに基づいて対応する操作を実行します。

このプログラムに関しては、特定のシナリオに依存します。つまり、このプログラムは異なります。では、このプログラムはどのアノテーションを読み取って何を行うかをどのように認識するのでしょうか?これはやはりアノテーション自体の定義に依存します。 @Repository などの注釈は、注釈付きのものを Spring コンテナーにロードするように定義されており、特定のプログラムは注釈を取得した後に何をすべきかを認識します。

以上がJavaのアノテーションとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート