2011-02-06 8 views
0

私はSpring DIを初めて使用しています。私は自分のウェブアプリケーションで初めてDIを使用しています。 私はここで目的の機能 を達成するために、様々な他のオブジェクトを注入していますseriveクラスは私の春のファイルのエントリである必要があり、私が間違っsomehingをやっているようで、それは私が春のscope.hereを使用しています方法は私の問題 ある関連しましたスプリング依存性注入スコープの混乱

<bean id="ImportServiceImpl" class="ImportServiceImpl" factory-method="getInstance"> 
     <property name="browseDirectory" ref="browseDirectoryImpl"/> 
     <property name="xmlUnmarshaller" ref="xmlUnmarshallerImpl"/> 
     <property name="Adaptar" ref="AdaptarImpl"/> 
     <property name="DAOService" ref="DAO"/> 
    </bean> 

    <bean id="browseDirectoryImpl" class="BrowseDirectoryImpl" factory-method="getInstance" /> 
    <bean id="xmlUnmarshallerImpl" class="XMLUnmarshallerImpl"/> 
    <bean id="AdaptarImpl" class="AdaptarImpl" factory-method="getInstance"/> 

は今私adaptarImplクラスで私は、サーバーの開始と、このサービスは、拳の時間のすべてを最初に実行したときのコンストラクタ今

private AdaptarImpl(){ 
    foo=new Foo(); 
} 

に初期化されているいくつかの他のオブジェクトへのrefrenceを持っていますfooはinitilizeされていますdを適切な初期化値に変更しますが、その後の他の呼び出しでは、Springは前回の初期化されたfooオブジェクトへのrefrenceをreturingしていますが、新しい要求ごとにfooの新しいインスタンスを作成する必要があります。 それはファクトリメソッドは、上記のコードfactory-method="getInstance" に使用されていることを私にapperas一度だけ呼び出されているときに呼び出さサーバーと私はすべての要求のための新しいインスタンスをしたいと同じrefrenceを返す他のすべてのその後のcalles。ここ は私facory方法

public static ImportServiceImpl getInstance(){ 
    return new ImportServiceImpl(); 
} 

である私がDIで間違った基礎をやっている知っているが、それはMVCのためと春のDIを使用して、サービス層にStruts2のを使用していますis.I場所がわからない この点で任意の助けになります便利

おかげ Umesh

答えて

3

私はあなたの質問を理解していないが、あなたはあなたのAdapterImplにはFooへの参照を注入し、その範囲「要求」を作るために春を頼むべきように聞こえます。オブジェクト作成を制御するためにSpringが必要な場合は、「new」を呼び出さないでください。

+0

更新を)しかし、私はちょうど病気あなたを与えるので、多くの唯一の範囲とsiglton :) –

+0

について知っている春の初心者ですとそれについて確認されませんでした1 - 私はドキュメントを指すと答えがある場所を正確に伝えるために傾向がある、あなただけの右のポイントになった;) – hvgotcodes

+0

hvgotcodes:私はとしてもその範囲を作成する必要が推測するので、私は、エントリポイントとしてImportServiceImplを使用していますので、私が間違っている場合は、adaptarクラスと一緒にリクエストしてください。 –

0

私はあなたが

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes

を見てする必要があると思います210

と表3.3を見てください。

+0

なぜ古代のバージョンですか? Spring 2.0は5歳以上です!ここでは[ビーンスコープ表]の現在のバージョン(http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes) –

+0

です@セーンありがとう。私はGoogleのオフ最初のリンクに続く; ...私もそれが要求することについて考えていた – hvgotcodes