[Seasar-user:9814] Re: [Seasar2 + S2Dao]helper パッケージについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 8月 9日 (木) 03:00:26 JST


小林 (koichik) です.

なんか微妙に間違いが多かったので事故^h^h自己レス.

Date:    Wed, 08 Aug 2007 20:00:56 +0900
From:    Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:9807] Re: [Seasar2 + S2Dao]helper パッケージについて

> * Helperクラス
> public class WarekiHelper {
> 
>   private static final WarekiHelper instance = new
> WarekiHelper();
> 	
>   public static WarekiHelper getInstance(){
>      return instance;
>   }

これだと WarekiHelper は S2Container から
取得されていないので,何も DI されません.
Helper も S2Container から DI されるように
してください.

具体的には,上記の static フィールドと
getInstance() メソッドは削除して,Page クラスの

>   private static final WarekiHelper Wareki =
> WarekiHelper.getInstance();
> 
>   public void setWarekiDate(String warekiDate) {
>      this.warekiDate = warekiDate;
>   }

を

  private WarekiHelper warekiHelper;

  public void setWarekiHelper(WarekiHelper warekiHelper) {
    this.warekiHelper = warekiHelper);
  }

  public String getWarekiDate() {
     warekiDate = warekiHelper.getWareki(getCheckDate());
     return warekiDate;
  }

としてください.

DI コンテナを使うと,シングルトンパターンを
使う必要はほとんどありません.

なお,Page クラスにはトランザクションを
設定してください.
設定方法は以下の「トランザクション制御を設定する」−
「ページのコンポーネントに適用する場合」を参照してください.

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


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