2017-06-14 9 views
1

同じクラスのインスタンスを設定値から作成して、その設定値から注入/自動実行する必要があります。私は次のようにguiceでそれをやっていた:クラスのインスタンスを春に修飾子にバインドする

for (String s : config.getStrings()) { 
    bind(Foo.class).annotatedWith(Names.named(s)).toInstance(new Foo(s)); 
} 

Springにこのような何かをする方法はありますかqualifier与えられたクラスのインスタンスを作成するためにFactoryBeanのようなものを使用する方法はありますか?

+0

のエイリアスを登録するには、あなたはもう少し、問題文を説明してくださいすることができます。あなたが何をしようとしているのかが私にはっきりと分かりません –

答えて

2
public final class FLEXSyncFactory implements ApplicationContextAware { 

    private static AbstractApplicationContext context; 

    public void setApplicationContext(ApplicationContext applicationContext) 
    throws BeansException { 
     context = (AbstractApplicationContext) applicationContext; 
    } 

とBean

DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) context.getBeanFactory(); 
Foo fooBean = beanFactory.getBean(Foo.class); 
beanFactory.initializeBean(fooBean, "TheAliasForBeanNameYouNeed"); 
beanFactory.autowireBeanProperties(fooBean, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true); 
+0

この回答は私にありました。私が必要としていたのは、context.getBeanFactory()。registerSingleton(fooBean、instance)でした。そして、それは@Qualifier( "fooBean")によってオートワイヤード可能でした – Nathanial

関連する問題