[Seasar-user:14810] Re: インスタンスをセッションで管理について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 6月 25日 (水) 04:01:02 JST


小林 (koichik) です.

Date:    Tue, 24 Jun 2008 19:33:19 +0900
From:    "Masao NADAI" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:14806] インスタンスをセッションで管理について

> この対象となるプロパティは、
> ・命名規約により決まったsuffixのクラス名のプロパティ
> かつ、
> ・命名規約により決まったsuffixのプロパティ名のプロパティ
> ということでよろしいでしょうか?
> #どこかのページに載っていたらすいません。

自動バインディングと SMART deploy によるコンポーネントの
自動登録を混同しているようです.
自動バインディングの仕様は以下を参照してください.

http://s2container.seasar.org/2.4/ja/DIContainer.html#AutoBindingMode

SessionDto はインタフェースを実装していないので,

----------------------------------------------------------------------
プロパティの型を実装したコンポーネントがコンテナに1つ登録されていて、 
プロパティ名とコンポーネント名が一致する場合、 そのコンポーネントが
設定されます。
----------------------------------------------------------------------

が適用されます.
自動バインディングに関しては suffix は関係ありません.

> public void setSession(SessionDto session) {
> this.session = session;
> }

この場合,SessionDto のアノテーションが

@Component(instance = InstanceType.SESSION, name="session")

となっていれば DI されます.
あるいは dicon に session という名前で明示的に定義
した場合も DI されます.

> public void setSessionDto(Session sessionDto) {
> this.sessionDto = sessionDto;
> }

こちらは DI されそうに見えます.
# こぴぺして修正し忘れ?


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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