[seasar-javadoc:168] Re: InstanceDef

Koichi Kobayashi koichik @ improvement.jp
2006年 6月 4日 (日) 00:00:07 JST


小林 (koichik) です.

Date:    Sat, 3 Jun 2006 17:03:02 +0900
From:    "O.Goto" <o-goto @ try-net.or.jp>
To:      seasar-javadoc @ ml.seasar.org
Subject: [seasar-javadoc:165] Re: InstanceDef

> @see S2Container#getComponent(Object)は余計?
> もともとの説明に書いてあったのですが今回削ったので@seeにしてみました。
> ちょっと迷ってます。

この場合はなくてもいいような.

> 	読点(、) の後ろには (いわゆる) 半角スペースを入れる。
> 	句点(。) の後ろでは改行する。
> 
> をやったのですが、セーブすると改行したものもつながってしまい、1行がとんでもなく長くなってしまいます。
> どうしたらいいんでしょう。

本当,ものすごい長さですね.(^^;
対策は鈴木 (belltree) さんが書いておられるのが効果あるようですね.
全体として「」で囲むのは控えた方がいいかも?
それより,

>  * コンポーネントのインスタンススコープが自身より短いコンポーネントをインジェクションすることは出来ません。 

この説明はちょっと難ありです.
スコープが短いコンポーネントを設定すること自体は問題なく
できます.
ただし,それが開発者の意図とは異なる場合があるということです.

例えば singleton のコンポーネント A と B があり,
それぞれに DI されるコンポーネント X があるとします.
もし X が singleton であれば,A と B に設定された
X は同一のインスタンスです.
一方,X が prototype であれば,A と B には異なった
X のインスタンスが設定されます.
それが意図したとおりであれば,問題ありません.

しかし,sigleton のコンポーネントのメソッドが呼ばれるたびに
prototype のコンポーネントが DI されると思う人が多いようです.
特に Web アプリケーションなどで目に付きますね.

そういう動きをして欲しい場合は PrototypeDelegateInterceptor を
使うことができます.

ということをうまくまとめて頂けると嬉しいです.
よろしくお願いします.


-- 
<signature>
    <name>Koichi Kobayashi</name>
    <e-mail>koichik @ improvement.jp</e-mail>
</signature>



seasar-javadoc メーリングリストの案内