2016-09-07 8 views
0

特定のタイプに基づいてBeanを作成したいとします。私は抽象クラスを2つの具体的なクラスで拡張しています。このクラスのオブジェクトは、そのタイプに基づいて、Factory(または他の最適なアプローチ)クラスを介してインスタンス化したいものです。FactoryメソッドをSpring XML設定で使用する

public abstract class Helper{ 
public abstract boolean check(); 
} 

public class C1 extends Helper{ 
     public boolean check(){ 
//implementation here 
} 
} 

public class C2 extends Helper{ 
     public boolean check(){ 
//implementation here 
} 
} 

public interface MyFactory{ 
    public Helper create(){ 
} 

アプリケーションのcontext.xml

<bean id=.../> 

どのように私はXMLを介し春のこの使用して依存性注入を行う必要がありますか?

また、私はServiceLocatorFactoryBeanアプローチを試みましたが、それは必要な型のオブジェクトを渡すのに役立ちません。このリンクに続く - http://www.jcombat.com/spring/factory-implementation-using-servicelocatorfactorybean-in-spring

+0

あなたの 'beans.xml'で' Factory'の具体的なimplを使ってあなたのcを解決しますか?おまえ? –

答えて

0

すること(例えば、MyFactoryImplのために)あなたの工場を実装してから設定します。

<bean id="myFactoryImpl" class="com.example.MyFactoryImpl" /> 

<bean id="c1" 
    factory-bean="myFactoryImpl" 
    factory-method="create"/> 

例の工場:

public class com.example.MyFactoryImpl implements MyFactory { 
    public Helper create(){return new C1()} 
} 

(春がそのMyFactoryインタフェースを必要としない)

+0

具体的なFactoryImplを使用している場合は、どのようにタイプC2のインスタンスを返すのですか?/ – user2340345

+0

@ user2340345:別の方法を使用して別のインスタンスを返す必要はありません。それは、あなたはちょうど春のXMLでbeensをinstanciateする方法を必要とすることができる、あなたは分からない? – Ralph

関連する問題