[Seasar-user:2791] Re: セッタインジェクションについて

Oishi Shingo Oishi.Shingo
2005年 11月 7日 (月) 10:43:27 JST


大石です。

>小林様
結局、Spring におけるメソッドインジェクションの実現は手間が掛かりそうですね。
丁寧なご回答ありがとうございました。

-----Original Message-----
From: [E-MAIL ADDRESS DELETED]
[mailto:[E-MAIL ADDRESS DELETED]]On Behalf Of Koichi
Kobayashi
Sent: Saturday, November 05, 2005 12:31 AM
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:2784] Re: セッタインジェクションについて


小林 (koichik) です.

Date:    Fri, 4 Nov 2005 18:42:58 +0900 
From:    Oishi Shingo <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:2778] セッタインジェクションについて

> さて、本題ですが、私は現在仕事で、それまで S2 で DI
> していたコンポーネントに対して、コンテナを Spring に替えて
> インジェクションするというような実験をやっております。
> 引っ掛かっているのはセッタインジェクションについてです。
> S2 の <initMethod> に代替するものは Spring にあるの
> でしょうか?<lookup-method>というのはどうも違うようですし。

Spring で <initMethod> 相当を実現するにはいくつかの方法があります.

一つめは InitializingBean インタフェースを実装するというものです.
このインタフェースには afterPropertiesSet() というメソッドが
定義されていて,プロパティ・インジェクションの後にこのメソッドが
呼び出されます.
# 当然ですが,Spring に依存したコンポーネントになってしまいます.

もう一つの方法は,<bean> 要素の init-method 属性で初期化メソッドを
指定するというものです.

どちらの場合も,複数のメソッドを起動することはできませんし,
引数を指定することもできないので,S2 の <initMethod> と
同等とは言い難いですね.
Spring では,凝った初期化が必要な場合は FactoryBean を
作成することになるのではないかと思います.

S2 と Spring の比較は JavaWorld 2005 年 5 月号で詳しく
書いたので,もしお持ちなら参照してください.

# お持ちでない場合は一応以下からバックナンバーが購入できそうな
# 雰囲気.宣伝っぽいですが.(^^;
http://direct.idg.co.jp/item_list.command?category_cd=MAGAZINE_JW&redirect=jwonline

なお,ルックアップメソッドインジェクションについては,
当初 JavaWorld 向けの原稿に記述があったのですが,ページ数が
大幅に超過したため削除したという経緯があります.
その該当部分を添付しますのでご参考までに.

-- 
<signature>
    <name>Koichi Kobayashi</name>
    <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>



Seasar-user メーリングリストの案内