[Seasar-user:19584] 【ご質問】S2ContainerのDI対象クラスインスタンス生成について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2010年 4月 1日 (木) 12:49:15 JST


お世話になっております。高木と申します。

S2Containerの動きを理解させていただきたく、ソース解析をさせていただいます
。

そこで、質問がございます。
場違いかと思いますが、ご教示いただけばと思います。

-------------------------------------------------------------------------------------------------------
質問:DI対象クラスをprototypeで指定し、同じcomponentを2回取得する場合、2
回目はインスタンス生成した後、取得する
    と書籍等に記載されておりますが、ソース上で具体的にどこで実装されて
いるのでしょうか?
-------------------------------------------------------------------------------------------------------

現時点で、わかっていることは下記の流れのみです。
(※)間違いがあればご指摘いただけばと思います。

        1.パスの設定
                SingletonS2ContainerFactory.setConfigPath(XMLのパス)

        2.DIコンテナ生成(対象メソッドinit)
                XML解析→DIコンテナ生成→初回キャッシュ
                SingletonS2ContainerFactory.init();
 
                ・DIコンテナ生成
                        org.seasar.framework.container.factory.
ComponentsTagHandlerクラスのcreateContainer()メソッドで
                        ClassUtilクラスのnewInstance()メソッドを呼び出し
ています。
 
                ・初回キャッシュは
                        
org.seasar.framework.container.factory.ComponentTagHandlerクラスのstart(
)メソッドで
                        componentClass = ClassUtil.forName(className)を用
い、インスタンス生成しています。

        3.コンポーネント取得(1回目)(対象メソッドgetComponet)
        4.コンポーネント取得(2回目)(対象メソッドgetComponet)
-------------------------------------------------------------------------------------------------------

3のコンポーネント取得の場合、DIコンテナへキャッシュしたものを取り出すと思
うのですが、4の動き(2回目のコンポーネントのインスタンス化)
をまだ把握出来ておりません。

唐突な質問となってしまい、大変申し訳ございません。
お手数おかけしますが、ご教示いただければと思います。

以上、よろしくお願いいたします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20100401/eab1125c/attachment.html>


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