[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 メーリングリストの案内