目次
コンストラクタ・インジェクションは,<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式が記述されていても無視されます.