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