OGI Blueprint入門の七
25768 ワード
BlueprintはDI仕様である以上、自然に注入に多くの需要があります。前のページでは、サービス引用の注入に触れました。
上記の例では、referenceノードは一つのOGIサービスに対する参照を定義し、その後、beanノード内でpropertyサブノードでこのサービスをbeanに注入し、注入はblueprintがbeanのset Coder(comp.ponder.ICoder)というsetter方法で実現される。
注入ベースタイプの定数:
上記の例では19.99という値をbeanに注入し、setPriceというsetter方法を用いていますが、その注入は19.99ですか?それとも文字列19.99ですか?これはsetterメソッドのパラメータの種類を見ます。これはわかります。
非基本タイプを注入する定数:
ベーンの注入:
集合の注入:
propertiesの注入:
- <reference id="coderService" interface="com.ponder.ICoder" timeout="0"/>
- <bean id="processor" class="com.ponder.Processor">
- <property name="coder" ref="coderService"/>
- </bean>
上記の例では、referenceノードは一つのOGIサービスに対する参照を定義し、その後、beanノード内でpropertyサブノードでこのサービスをbeanに注入し、注入はblueprintがbeanのset Coder(comp.ponder.ICoder)というsetter方法で実現される。
注入ベースタイプの定数:
- <bean id="processor" class="com.ponder.Processor">
- <property name="price" value="19.99"/>
- </bean>
上記の例では19.99という値をbeanに注入し、setPriceというsetter方法を用いていますが、その注入は19.99ですか?それとも文字列19.99ですか?これはsetterメソッドのパラメータの種類を見ます。これはわかります。
非基本タイプを注入する定数:
- <bean id="processor" class="com.ponder.Processor">
- <!-- boolean -->
- <property name="boolvar">
- <value type="java.lang.boolean">true</value>
- </property>
- <!-- BigInteger -->
- <property name="bigIntVar">
- <value type="java.lang.BigInteger">823899238</value>
- </property>
- </bean>
ベーンの注入:
- <!-- bean1 -->
- <bean id="bean1" class="com.ponder.bean1"/>
-
- <!-- bean1 bean(processor) -->
- <bean id="processor" class="com.ponder.Processor">
- <property name="mybean" ref="bean1"/>
- </property>
- </bean>
集合の注入:
- <bean id="processor" class="com.ponder.Processor">
- <!-- -->
- <property name="arrayvar">
- <array value-type="java.lang.String">
- <value>hello</value>
- <value>world</value>
- <value>!</value>
- </array>
- </property>
- <!-- list -->
- <property name="listvar">
- <list value-type="java.lang.String">
- <value>hello</value>
- <value>world</value>
- <value>!</value>
- </list>
- <!-- set -->
- <property name="setvar">
- <set value-type="java.lang.String">
- <value>hello</value>
- <value>world</value>
- <value>!</value>
- </set>
- </property>
- </bean>
propertiesの注入:
- <bean id="processor" class="com.ponder.Processor">
- <property name="propsvar">
- <props>
- <prop key="hello">hello</prop>
- <prop key="world" value="world" />
- </props>
- </property>
- </bean>
MAPの注入:
- <bean id="processor" class="com.ponder.Processor">
- <property name="mapvar">
- <map>
- <!-- -->
- <entry key="hello" value="world" />
- <!-- -->
- <entry key-ref="obj-ref" value="value1"/>
- <!-- -->
- <entry key="key1" value-ref="value-ref"/>
- <!-- -->
- <entry key-ref="obj-ref" value-ref="value-ref"/>
- <!-- -->
- <entry key="key2">
- <value type="java.lang.BigInteger">92873873242323</value>
- </entry>
- <!-- -->
- <entry value="value2">
- <key type="java.lang.BigInteger">92873873242323</value>
- </entry>
- <!-- -->
- <entry>
- <key type="java.lang.Long">2323</value>
- <value type="java.util.List">
- <list value-type="java.lang.String">
- <value>hello</value>
- <value>world</value>
- <value>!</value>
- </list>
- </value>
- </entry>
- </map>
- </property>
- </bean>
Blueprint実行時の環境コンテキストの注入:
- <bean id="processor" class="com.ponder.Processor">
- <!-- BundleContext -->
- <property name="bundlecontext" ref="blueprintBundleContext"/>
- <!-- Bundle -->
- <property name="bundle" ref="blueprintBundle"/>
- <!-- blueprint -->
- <property name="container" ref="blueprintBundleContainer"/>
- <!-- -->
- <property name="converter" ref="blueprintBundleConverter"/>
- </bean>