2017-06-16 96 views
0

我必須在Spring Boot中使用公司定製的庫,並且想知道我是否能夠在運行時像這樣創建bean並將其添加到Spring應用程序上下文中。使用方法動態創建Spring bean使用方法

@Bean(name = {"customConnectionFactory"}) 
public ConnFactory connector() { 
    return new SimpleConnFactory(configuration(), "prefix"); 
} 

所以這個工作正常,當我被允許通常在啓動應用程序時連線bean。現在需求已經改變,我應該能夠做到這一點動態運行時。我已經做了一些研究,似乎可以向Spring上下文運行時添加類,但運行返回新對象的方法怎麼樣?

回答

1

可能是這樣的

DefaultListableBeanFactory beanFactory = //get and store the factory somewhere 

MyBean newBean = new MyBean(); 
beanFactory.initializeBean(newBean,"TheBeanName"); //could be class' canonical name 
beanFactory.autowireBeanProperties(newBean, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true); 
beanFactory.registerSingleton("TheBeanName", newBean); 
+0

謝謝,我不知道我可以創建一個對象,併線,爲應用程序上下文。 – JohnP