我必须在Spring Boot中使用公司定制的库,并想知道我是否能够在运行时创建这样的bean并将其添加到Spring应用程序上下文中。
@Bean(name = {"customConnectionFactory"})
public ConnFactory connector() {
return new SimpleConnFactory(configuration(), "prefix");
}
所以当我在启动应用程序时允许正常连接bean时,这很好用。现在需求已经改变,我应该能够动态地运行这个。我已经做了一些研究,似乎可以将类添加到spring上下文运行时,但是如何运行返回新对象的方法呢?
答案 0 :(得分:2)
可能是这样的
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);