[Seasar-user:15306] Re: 【Teeda】sessionのDIについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 8月 7日 (木) 20:00:13 JST


小林 (koichik) です.

Date:    Thu, 7 Aug 2008 18:25:20 +0900
From:    r.m <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15304] Re: 【Teeda】sessionのDIについて

> private TestDao testDao;

setter メソッドはありますか?
private フィールドは (そのままでは) DI の
対象にはなりません.
public にするか,setter メソッドを追加するか,
@Resource (または @Binding) アノテーションを
指定するかのいずれかが必要です.

> サーバー起動時にInitializeをする設定をdiconに追加

これは app.dicon でしょうか?
SMART deploy の場合,Dao が自動登録されるのは
ルートのコンテナ (app.dicon) であるため,
Dao を使用するコンポーネントも app.dicon に
登録する必要があります.

> これでやったところ、testDaoがDIされませんでした。

HOT deploy でしょうか? それとも COOL deploy
でしょうか?

いずれの場合も,本来なら

DSSR0105 クラス(TestDao)のコンポーネント定義を登録します

というようなログが出力されるはずなので
確認してください.

また,app.dicon に TestDao を明示的に定義した
場合はどうなるでしょうか?

<component name="testDao" class="...TestDao">
  <aspect>dao.interceptor</aspect>
</component>

> やはり、initializeの時には、Daoを用いた初期化は出来ないのでしょうか。

そんなことはありません.


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