Springプロファイルのpとcネーミングスペースの使用

4515 ワード

1、pネーミングスペースとcネーミングスペース
構成方法またはset方法によって関連項目がbeanに注入される場合、一般にconstructor-arg要素およびproperty要素によって定義される.p(property)ネーミングスペースとc(constructor-arg)ネーミングスペースがある場合、beanの属性として簡単に定義することができます.
1.1、pネーミングスペースpネーミングスペースを使用する場合は、対応するネーミングスペースの使用を宣言する必要があります.すなわち、beans要素にxmlns:p="http://www.springframework.org/schema/p"を追加します.まず例を見てみましょう.



	
	
	
	
		
		
		
	
	
	
	


上記の例では、idがhello 1のbeanは従来のbean定義であり、idがhello 2のbeanはpネーミング空間に基づくbean定義である.従来のproperty要素定義のvalueがベースデータ型である場合、property要素に対応するnameにpネーミング空間の接頭辞を直接beanの属性として定義することができ、対応する値は元のproperty要素に対応するvalueである.上記の例ではnameが「p 1」のpropertyがpネーミング空間を使用すると「p:p 1」になる.従来のproperty要素が他のbeanに対する関連を定義する場合、property要素に対応するnameに「-ref」を直接付け、pネーミング空間の接頭辞をbeanの属性として定義することができ、対応する値は元のproperty要素に対応するref値であり、上述の例ではnameが「world」であるpropertyは他のbeanに対する関連を定義するものである.pネーミングスペースを使うと「p:world-ref」になります.ここで注意しなければならない点はpropertyが対応するのはsetメソッドであり、対応する属性ではなく、例えばnameが「world」のpropertyが実際に対応するのはsetWorld()メソッドであり、この場合、対応するbeanが本当にworldという属性があるかどうかにかかわらず.もう1つ注意すべき点は、pネーミングスペースを使用する場合に「-ref」で終わるpropertyに注意することです.これにより、Springはその前の部分をpropertyとして使用されます.「-ref」はSpringに関連付けられたキーワードとして使用されるためです.
1.2、cネーミングスペース
cネーミングスペースは、constructor-argに対応するpネーミングスペースと同様に使用されます.すなわち、constructor-arg要素をbeanのcネーミングスペース接頭辞で始まる属性に置き換えることができます.cネーミングスペースを使用する前にxmlns:c="http://www.springframework.org/schema/c」と宣言します.



	
	
	
	
		
		
		
	
	
	

以上のように,cネーミング空間の用法はpネーミング空間の用法と類似している.構造方法によって元のタイプのオブジェクトを注入するには、対応する構造パラメータ名にcネーミング空間の接頭辞を付けてbeanの属性として定義することができ、対応する値は構造パラメータの値である.構造パラメータによって他のbeanの参照が注入される場合、構造パラメータ名に「-ref」を付け、cネーミング空間の接頭辞を加えてbeanの属性として定義することができ、対応する値は、上述の例の「c:arg 3-ref」のように、関連するbeanのidまたはnameである.
構造パラメータ名にcネーミング空間の接頭辞を直接beanの属性定義として付加して、対応するconstructor-argの代わりにdebug方式でコンパイルされたclassにのみ有効であることに注意してください.非debug方式でコンパイルされたclassファイルSpringでは、構造方法に対応するパラメータ名が取得されないためです.この場合、構造方法パラメータのインデックスに下線「」接頭辞を直接使用して、対応するパラメータ名の代わりに使用することができます.インデックスは0から始まります.上記の例のように、インデックスをインデックスに置き換えると、次のようになります.



	
	
	
	
		
		
		
	
	
	

注意:(Spring 4.1.0に基づいて記載されています)