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

Koichi Kobayashi koichik
2005年 11月 5日 (土) 00:30:40 JST


小林 (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>
-------------- next part --------------
テキスト形式以外の添付ファイルを除去しました...
ファイル名: spring-lookupmethod.txt
型:         application/octet-stream
サイズ:     3247 バイト
説明:       無し
URL:        http://lists.sourceforge.jp/mailman/archives/seasar-user/attachments/20051105/94211ee0/spring-lookupmethod.obj



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