[seasar-javadoc:179] Re: InstanceDef
O.Goto
o-goto @ try-net.or.jp
2006年 6月 4日 (日) 22:30:38 JST
後藤(goto)です。
On Sun, 04 Jun 2006 18:00:34 +0900
Koichi Kobayashi <koichik @ improvement.jp> wrote:
> 小林 (koichik) です.
>
> > > インジェクションできる/できないというのは,そのインスタンスが
> > > 生成される時点で存在するコンテキストからはインジェクションできて,
> > > 存在しないコンテキストからはインジェクションできないということです.
> > >
> > これは全てのインスタンスモードについて言えるわけですよね。
>
> はい,その通りです.
>
> > ということは、「〜は〜をインジェクション出来ます。」というように単純には表やリストには出来ないですよね。
> > どうしたら一番いいのかな?
>
> 分かりやすさと正確さのバランスが難しいですね.
> 正確さを重視すると session に request を設定するみたいなのは
> 問題なく可能ということになりますが,分かりやすさを重視するなら
> それはできません,あるいはやめた方がいい,と言ってしまう方が
> 簡単だったり.
>
> Javadoc というドキュメントの位置づけを考えると,正確さを
> 重視した方がいいかもしれませんね.
> 分かりやすさは Javadoc ではなく他のドキュメントに
> 任せるということで.
>
Javadocは正確さを重視ということ、私も賛成です。
> > * コンポーネントインスタンス定義の種類には、以下のものがあります。
> > * <dt><code>singleton</code>(default)</dt>
> > * <dd>S2コンテナ上で唯一のインスタンスになります。</dd>
> > * <dt><code>prototype</code></dt>
> > * <dd>コンポーネントが必要とされる度に異なるインスタンスになります。</dd>
> > * <dt><code>application</code></dt>
> > * <dd>アプリケーションコンテナのアプリケーションコンテキスト毎に1つのインスタンスになります。</dd>
> > * <dt><code>request</code></dt>
> > * <dd>アプリケーションコンテナのリクエストコンテキスト毎に1つのインスタンスになります。</dd>
> > * <dt><code>session</code></dt>
> > * <dd>アプリケーションコンテナのセッションコンテキスト毎に1つのインスタンスになります。</dd>
>
> 今更気づきましたが,「アプリケーションコンテナ」はちょっと
> 分かりにくいかも.Web コンテナのような位置づけの総称という
> 意図なのだと思いますが,見る人によっては「何それ?」と
> 思うかもしれません.
> ここは「アプリケーションコンテの」はサクッと削っていいように
> 思います.
>
はい。S2コンテナとWeb コンテナなどのコンテナとを区別するために「アプリケーションコンテナ」っていう名称を
引っ張り出してきました。
でも、確かに削ってしまっても問題ないような気がします。
すぐ後で説明がありますからね。
> > * それぞれ、インスタンスが生成されるタイミングはそのコンポーネントが必要とされる時になります。
>
> 捕捉として,singleton は S2Container#init() が呼び出された時点で
> インスタンスが生成されるということを書いておいた方がいいかもしれません.
> もっとも,これは S2ContainerImpl の実装では,ということになりますし,
> InstanceDef で記述する範囲を超えているような気もしますが.
> うーん,うーん,やっぱりなくてもいいかも.
> それは S2ContainerImpl#init() のところで書いてあればいいや.
>
singleton は S2ContainerImpl#init() が呼び出された時点でインスタンスが生成されるというのは、
今知りました。
S2ContainerImplはinit()自体よりinit()後のパフォーマンス重視ってことですかね。
このInstanceDefでの説明としてはこのままで間違ってはいないですよね。
> > * コンポーネントにインジェクションできるコンポーネントは、インジェクション対象コンポーネントのインスタンスが生成される時点で存在するコンテキストのコンポーネントからのみです。
>
> 「コンポーネント」が 4 回も出てくるとさすがに辛いですね.(^^;
>
ちゃんと推敲しないとダメですね。>私
> * コンポーネントにインジェクションできるのは、そのコンポーネントが生成される時点で存在するコンテキストのコンポーネントのみです。
>
> でどうでしょう?
>
少し変えました。
* コンポーネントにインジェクションできるのは、そのインスタンスが生成される時点で存在するコンテキストのコンポーネントのみです。
どうでしょうか。
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: InstanceDef.java
型: application/octet-stream
サイズ: 5655 バイト
説明: 無し
URL: http://ml.seasar.org/archives/seasar-javadoc/attachments/20060604/d3adcd82/attachment.obj
seasar-javadoc メーリングリストの案内