目次
コンストラクタ・インジェクションは,<component>要素の子として<arg>要素を記述することによって指定します.
<arg>要素は,呼び出したいコンストラクタの引数の数だけ記述します.
<component class="fullQualifiedClassName"> <arg>content</arg> <arg>content</arg> ... </component>
<arg>要素の内容には次のものを記述することができます.
OGNL式または<component>要素
<meta>要素 (Seasar2.1以降)
<description>要素
<arg>要素の内容がコンストラクタの引数として渡されます.
<arg>要素を複数記述した場合は,その内容が記述した順番にコンストラクタ引数に渡されます.
<arg>要素の数とその内容 (型)
を適用できるコンストラクタが存在しない場合は,org.seasar.framework.beans.ConstructorNotFoundRuntimeExceptionがスローされます.
<component>要素にインスタンス生成式 (OGNL式)
を記述した場合は,<arg>要素が記述されていても無視されます.
<arg>要素の内容にOGNL式と<component>要素の両方を記述した場合,<component>要素は無視されます.
<component class="fullQualifiedClassName"> <property name="propertyName" (1) bindingType="must | should | may | none" (2) > content </property> </component>
| (1) |
|
| (2) |
|
<property>要素の内容には次のものを記述することができます.
OGNL式または<component>要素
<meta>要素 (Seasar2.1以降)
<description>要素
<property>要素の内容にOGNL式と<component>要素の両方を記述した場合,<component>要素は無視されます.
<component class="fullQualifiedClassName"> <initMethod name="methodName" (1) > <arg>content</arg> <arg>content</arg> ... </initMethod> </component>
| (1) |
|
<initMethod>要素の内容には次のものを記述することができます.
OGNL式または<arg>要素
<description>要素
<initMethod>要素にname属性でメソッド名を指定した場合は,そのメソッドの引数を<arg>要素を記述します.メソッドに引数がない場合は<arg>要素は不要です.
例 15.1. <initMethod>要素にname属性を指定した場合
<component class="java.util.HashMap">
<initMethod name="clear"/>
<initMethod name="put">
<arg>"key"</arg>
<arg>"value"</arg>
</initMethod>
</component>
<initMethod>要素にname属性を指定しなかった場合は,内容としてOGNL式を記述します.
OGNL式の中では,#selfという変数で<initMethod>が記述されているコンポーネントを参照することができます.
例 15.2. <initMethod>要素にname属性を指定しなかった場合
<component class="java.util.HashMap">
<initMethod>
#self.clear()
</initMethod>
<initMethod>
#self.put("key", "value")
</initMethod>
</component>
<initMethod>要素にname属性が指定された場合は,OGNL式が記述されていても無視されます.
<component class="fullQualifiedClassName"> <destroyMethod name="methodName" (1) > <arg>content</arg> <arg>content</arg> ... </destroyMethod> </component>
| (1) |
|
<destroyMethod>要素の内容には次のものを記述することができます.
OGNL式または<arg>要素
<description>要素
<destroyMethod>要素にname属性でメソッド名を指定した場合は,そのメソッドの引数を<arg>要素で記述します.メソッドに引数がない場合は<arg>要素は不要です.
例 15.3. <destroyMethod>要素にname属性を指定した場合
<component class="java.util.HashMap">
<destroyMethod name="remove">
<arg>"key"</arg>
</destroyMethod>
</component>
<destroyMethod>要素にname属性を指定しなかった場合は,内容としてOGNL式を記述します.
OGNL式の中では,#selfという変数で<destroyMethod>が記述されているコンポーネントを参照することができます.
例 15.4. <destroyMethod>要素にname属性を指定しなかった場合
<component class="java.util.HashMap">
<destroyMethod>
#self.remove("key")
</destroyMethod>
</component>
<destroyMethod>要素にname属性が指定された場合は,OGNL式が記述されていても無視されます.