ひがやすを技術ブログ

電通国際情報サービスのプログラマ

コンポーネントの定義

コンポーネントXMLで定義は次のようになります。


コンストラクタを使う場合
<component class="java.math.BigDecimal">
<arg>123</arg>
</component>

プロパティを使う場合
<component class="java.util.Date">
<property name="time">123</property>
</component>

メソッドを使う場合
<component name="jndiEnv" class="java.util.Hashtable">
<method name="put">
<arg>'java.naming.factory.initial'</arg>
<arg>'org.seasar.naming.NamingContextFactory'</arg>
</method>
<method name="put">
<arg>'java.naming.provider.url'</arg>
<arg>'localhost:1108'</arg>
</method>
</component>

コンストラクタで他のコンポーネントを名前で参照する場合
<component name="initCtx" class="javax.naming.InitialContext">
<arg>jndiEnv</arg>
</component>

他のコンポーネントのプロパティやメソッドを呼び出した結果を
コンポーネントとする場合
<component name="ds">
initCtx.lookup('jdbc/oracle')
</component>
コンストラクタやプロパティだけではなく、メソッドも使えます。
arg,propertyタグの値をcomponentタグで再帰的に定義することもできます。
SEL(Seasar Expression Language)もつかえるのでかなり自由自在です。
SELはFlowletで使っていた式言語です。