2017-06-14 64 views
1

我有從配置值創建相同類的實例,以便我需要他們從該配置值注入/自動裝配。我是這樣做的guice像:編程將類的實例綁定到限定符在春天

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

有沒有辦法做這樣的事情在Spring或有使用類似一個FactoryBean創造給予qualifier一個類的實例的方法嗎?

+0

的別名,你可以請解釋這個問題發言多一點。這並不完全清楚你想要做什麼 –

回答

2
public final class FLEXSyncFactory implements ApplicationContextAware { 

    private static AbstractApplicationContext context; 

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

並登記豆

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