目次
1.Spring 設定ファイルの命名
回答: Spring 構成ファイルは resources フォルダーの下に配置されます. 通常、デフォルト名の applicationContext.xml を付けます。以下に示すように:
2.Spring構成ファイルの内容
上記の図は、最も基本的な Spring 構成ファイルの内容です。この設定ファイル内の各ラベルの使い方について、以下で詳しく紹介します。
- この applicatinContext.xml ファイルでは、通常、上部に URL の文字列があり、この URL の文字列には、一種の制約情報であるエイリアスが与えられます。このファイルを実行すると、このアドレスに移動して書かれたものを自分で呼び出し、書かれた規則に従います。
- <bean> タグの詳細な解釈
<bean id="" class="">
<property name="" value=""/> <!--这是set注入-->
</bean>
- <bean> タグを使用してオブジェクトを作成します。これは、最初に学習した新しいオブジェクトと同じ効果があります。
- <bean> タグの id は、将来作成するオブジェクトの名前を表します。これは一意です。
- class: 作成したオブジェクトがどのタイプのクラスであるかを示します. このクラスの完全な名前修飾を記述する必要があります (この完全な名前修飾は、Java パッケージからこのクラスが配置されているパッケージ パスを記述するためのものです). さらに、ここにあるクラスはインターフェイスであってはなりません。インターフェイスは新しいオブジェクトにすることはできないからです。
- <bean></bean> タグ ペアの間にコンテンツがない場合、<bean></bean> は <bean/> と省略できます。
3. セットインジェクション
<bean id="" class="">
<property name="" value="" />
</bean>
セット注入とは、この Bean オブジェクトを作成するときに、set メソッドを使用して、作成されたオブジェクトのプロパティに値を割り当てることを意味します。
したがって、set インジェクション メソッドを使用してオブジェクトを作成するときは、クラスに既に set メソッドがあることを確認する必要があります。
set Injection のプロパティ タグの name 属性: クラスの属性名とまったく同じである必要があります。これは、Spring が名前の名前に従って setName の対応する set メソッドを見つけるためです。
セットインジェクションのプロパティタグのvalue属性:オブジェクトの属性に値を割り当てることを意味し、値の値はオブジェクトの属性の値ですが、ここで注意すべきはvalue属性です単純なタイプの属性にのみ値を割り当てることができます (単純なタイプは、8 つの基本タイプと基本タイプのパッケージング クラスです)。
では、参照型のプロパティを使用してコピーするにはどうすればよいでしょうか。
このとき, プロパティタグの属性でもある ref 属性を使用する必要があります. ref 属性は参照型の属性に値を割り当てるために使用されます. ref 属性の機能はvalue 属性と同じですが、value 属性は基本型用です 属性の代入 ref 属性は、参照型の属性に値を代入します。
ref 属性の値は、参照型の id 値です。
補足: クラスが set を使用して属性値を注入するが、set メソッドのみを記述し、属性を記述しない場合、Spring の設計規則に従って、Spring は の値のみを判断するため、set インジェクションを使用してもエラーは報告されません。属性. set メソッドが存在するかどうかにかかわらず、メソッドが存在する場合、エラーは報告されません。
4. インジェクションの構築
<bean id="" class="">
<constructor-arg name="" value="" />
</bean>
コンストラクション インジェクションは、オブジェクトを作成するクラスのパラメータ化されたコンストラクション メソッドを使用するため、コンストラクション インジェクションを使用する場合は、コンストラクション メソッドの存在を確認してください。
構築インジェクションの constructor-arg タグの name 属性は、構築メソッドのパラメーターの名前とまったく同じでなければなりません。
コンストラクション インジェクションの constructor-arg タグの value 属性は、基本型の属性に値を割り当てるためにも使用されます。参照型のプロパティに値を割り当てる場合は、ref プロパティを使用する必要があります。ref の値は、この属性が配置されているクラスの ID の値です。
補足:構築インジェクションのconstructor-argタグのname属性はindexに置き換え可能で、indexの値は0、1、2です。構築メソッドの最初のパラメータに値を代入するという意味です。例えば
<bean id="" class="">
<constructor-arg index="0" value="" /><!--给构造方法的第一个参数赋值-->
<constructor-arg index="2" value="" /><!--给构造方法的第三个参数赋值-->
<constructor-arg index="1" value="" /><!--给构造方法的第二个参数赋值-->
</bean>
上記のコードは、インデックスの属性を使用して、構造体によって注入された属性に値を割り当てる場合、0、1、および 2 の順序で値を割り当てる必要がないことを示しています。順序は、乱れ、0、2、および 1 の添字も可能です。
0、1、および 2 の添字に厳密に従って、構造体によって注入された属性に値を割り当てる場合は、次のスタイルに短縮することもできます。
<bean id="" class="">
<constructor-arg value="" /><!--给构造方法的第一个参数赋值-->
<constructor-arg value="" /><!--给构造方法的第二个参数赋值-->
<constructor-arg value="" /><!--给构造方法的第三个参数赋值-->
</bean>
つまり、上記のコードでは index 属性が省略されていますが、このメソッドでは、構築メソッドのパラメーターの順序で属性に値を割り当てる必要があります。
コンストラクション インジェクションの力: コンストラクション インジェクションを使用してプロパティに値を割り当てると、Java に組み込まれている記述されたクラスを直接使用できます。たとえば、次の図に示すように:
上の図の名前は File クラスの属性で、値は定義した File クラスのオブジェクト myFile に割り当てたい値です。