Spring-autowired-annotation
Spring @Autowiredアノテーション
セッターメソッドの@Autowired
セッターメソッドで @ Autowired アノテーションを使用して、XML構成ファイルの<property>要素を削除できます。 Springは、セッターメソッドで使用される@Autowiredアノテーションを見つけると、メソッドで byType 自動配線を実行しようとします。
例
作業中のEclipse IDEを用意し、次の手順に従ってSpringアプリケーションを作成します。
Step | Description |
---|---|
1 | Create a project with a name SpringExample and create a package com.finddevguides under the *src *folder in the created project. |
2 | Add required Spring libraries using Add External JARs option as explained in the Spring Hello World Example chapter. |
3 | Create Java classes TextEditor, SpellChecker and MainApp under the com.finddevguides package. |
4 | Create Beans configuration file Beans.xml under the* src* folder. |
5 | The final step is to create the content of all the Java files and Bean Configuration file and run the application as explained below. |
以下は TextEditor.java ファイルの内容です-
次に、別の依存クラスファイル SpellChecker.java の内容を示します。
以下は MainApp.java ファイルの内容です-
以下は、構成ファイル Beans.xml です-
ソースおよびBean構成ファイルの作成が完了したら、アプリケーションを実行しましょう。 すべてがあなたのアプリケーションでうまくいけば、これは次のメッセージを印刷します-
プロパティの@Autowired
プロパティで @ Autowired アノテーションを使用して、セッターメソッドを取り除くことができます。 <property>を使用して自動配線されたプロパティの値を渡す場合、Springはそれらのプロパティに渡された値または参照を自動的に割り当てます。 したがって、プロパティで@Autowiredを使用すると、 TextEditor.java ファイルは次のようになります-
以下は、構成ファイル Beans.xml です-
上記の2つのソースおよびBean構成ファイルの変更が完了したら、アプリケーションを実行します。 すべてがあなたのアプリケーションでうまくいけば、これは次のメッセージを印刷します-
コンストラクターの@Autowired
@Autowiredをコンストラクターにも適用できます。 コンストラクター@Autowiredアノテーションは、XMLファイルでBeanを構成するときに<constructor-arg>要素が使用されていない場合でも、Beanの作成時にコンストラクターが自動配線されることを示します。 次の例を確認してみましょう。
以下は TextEditor.java ファイルの内容です-
以下は、構成ファイル Beans.xml です-
上記の2つのソースおよびBean構成ファイルの変更が完了したら、アプリケーションを実行します。 アプリケーションに問題がない場合、次のメッセージが出力されます。
(必須= false)オプション付きの@Autowired
デフォルトでは、@ Autowiredアノテーションは、@ Requiredアノテーションと同様に依存関係が必要であることを示しますが、@ Autowiredで*(required = false)*オプションを使用すると、デフォルトの動作をオフにできます。
次の例は、年齢プロパティに値を渡さなくても機能しますが、名前プロパティを要求します。 このサンプルは、 Student.java ファイルのみが変更されていることを除いて@Requiredアノテーションのサンプルに似ているため、自分で試すことができます。