FactoryBean は道のりです。とても簡単ですので、ぜひお試しください。実装するクラスを作成し、FactoryBean
それを Bean 定義ファイルで参照するだけです。
package some.package;
import org.springframework.beans.factory.FactoryBean;
public class ExampleFactory implements FactoryBean {
private String type;
public Object getObject() throws Exception {
//Logic to return beans based on 'type'
}
public Class getObjectType() {
return YourBaseType.class;
}
public boolean isSingleton() {
//set false to make sure Spring will not cache instances for you.
return false;
}
public void setType(final String type) {
this.type = type;
}}
次に、Bean 定義ファイルに次のように入力します。
<bean id="cached1" class="some.package.ExampleFactory">
<property name="type" value="X" />
</bean>
<bean id="cached2" class="some.package.ExampleFactory">
<property name="type" value="Y" />
</bean>
で実装した戦略に基づいてオブジェクトを作成しますExampleFactory.getObject()
。