フォトアルバム

2011年10月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

なかのひと

373news.com

google Search

  • Google
    blog.ganymean.org
    WWW

Google Analytics

« ColdSpring in MG:Unity No.2 | メイン | 幻想的な朝日 »

ColdSpring in MG:Unity No.3

ColdSpringの公式ドキュメントのAutoWiringを意訳してみました。
前回紹介したpropertyチャイルドタグ/constructor-argチャイルドタグは、依存性の注入方法を規定していましたが、beanタグのautowire属性はColdSpringが注入先のCFCをどのようにして発見するかを規定していて、autowire属性が指定されていれば、セッターメソッドは不要であることが記述されています。
また、autowiringの設定には、"byName"および"byType"の2つがあるようです。

"autowire"とは、Bean定義用xmlファイルでお互いの依存性を定義せずに、ColdSpringのbeanFactoryが依存する相互のオブジェクトを自動的に結合する能力のことを指します。

ColdSpring beanFactoryの中でCFCsを定義すると、ColdSpringは各CFCのメタデータを点検して、他のCFCにpropertyかconstructor-argで指定するものがあるかどうかを探します。

autowiringはBeanFactory内で、デフォルトで'オフ'にされていますが、'オン'にセットすると(bean全体かbeanの要素毎にセットできます)、ColdSpringは自動的に、依存性の注入(と自動的にオブジェクト結合)を行います。

autowiringの設定には、"byName"および"byType"の2つがあります。

推測できると思いますが、"byName"は、beanのname属性つまりCFC内にsetSomeService(...)メソッドか"SomeService"をコンストラクタ引数に持つCFCとColdSpring.xmlでid="SomeService"がある<bean/>内のCFCを結合し、"SomeService"を該当するCFCにいつでも注入します。

"byType"は、ColdFusionコード内に"type"属性、つまり、セッターメソッドの引数(または、コンストラクタ引数に) type="type.of.SomeService"を使用することによって、ColdSpring.xmlにclass="type.ofSomeService"があるbeanがあれば、そのbeanを該当するCFCにいつでも注入します。

benaタグのエンティティ全体にautowiringをセットするには、default-autowire属性を使用してください:

<beans default-autowire="byName">
    <bean id="cfc1" class="..."/>
    <bean id="cfc2" class="..."/>
...
</beans>

各々のbean(default-autowire設定をオーバライドすることになります)にautowiringをセットするには、autowire属性を使用してください:

<beans>
    <bean id="cfc1" class="..." autowire="byType"/>
    <bean id="cfc2" class="..."/>
    <bean id="cfc3" class="..." autowire="byName"/>
...
</beans>

トラックバック

このページのトラックバックURL:
http://app.synapse-blog.jp/t/trackback/190195/6562716

ColdSpring in MG:Unity No.3を参照しているブログ:

コメント

コメントを投稿

コメントは記事の投稿者が承認するまで表示されません。

ログイン

  • コントロールパネルへのログイン
    アカウント:

    パスワード:

更新ブログ

最近のトラックバック

Google

ブログ powered by TypePad
Member since 04/2005