[Seasar-user:10831] Re: [S2Container] 共通のinterfaceを利用するクラスをSMART Deploy環境で実装する一般的な方法

nobu [E-MAIL ADDRESS DELETED]
2007年 10月 2日 (火) 15:46:07 JST


近藤(nobu)です。

ひがさん、ご回答ありがとうございます。

> クラスAはhogeEnglish、クラスBはhogeJapaneseという名前に
> なっているので
> 
> public Hoge hogeEnglish;
> 
> public Hoge hogeJapanese;
> 
> のようなプロパティを定義しておけば、自動でバインディングされます。
> ポイントは、プロパティ名とコンポーネント名を一致させることです。
> 
> S2Containerから直に取得するのはS2Containerに依存するので
> あまりお勧めしませんが、どうしても必要なときには、
> Hoge hogeEnglish = SingletonS2Container.getComponent(
>     "hogeEnglist");
> のように取得してください。

現在、後者のようにSingltonS2Cotainerから取得したContainerクラスからイン
スタンスを取得しています。前者は・・・初めて知りました。

申し訳ありませんが、いくつか質問させて下さい。

1.ひがさんの記述だとpublicで宣言のみですが、これはSeasar 2.4.17からの
 public fieldの機能を利用していますか?
 私の環境はSeaser 2.4.10なので、setter/getterを用意すれば使用できます
 か?
 ※実は、以前同じようにやってみたことがあるのですが、インスタンスの
  取得ができなかったもので・・・。

2.例の如く(?)大文字小文字がバラバラな私ですが以下のような宣言の時に、

 ・インターフェース
 public interface Hoge

 ・クラスA
 public class HogeEnglishImpl implements Hoge

 ・クラスB
 public class HogeJapaneseImpl implements Hoge

 上記クラスを使用するアプリケーション側で

 public class ExecApp
 {
    public Hoge hogeEnglish;
    public Hoge hogeJapanese;

  public void ExecApp()
    {
    ・・・
  }
 }

 でOKという事でしょうか?


以上、よろしくお願い致します。



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