这个方法也很简单首先顾名思义就是得到BeanFactory,并用ConfigurableListableBeanFactory去接收bean工厂。
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
代码方法如下:
protected ConfigurableListableBeanFactory obtainFreshBeanFactory() {
refreshBeanFactory();
return getBeanFactory();
}
//refreshBeanFactory()方法什么都不处理,我们仅仅是拥有一个内部BeanFactory,并依赖调用方通过我们的公共方法(或BeanFactory的方法)注册bean。
protected final void refreshBeanFactory() throws IllegalStateException {
if (!this.refreshed.compareAndSet(false, true)) {
throw new IllegalStateException(
"GenericApplicationContext does not support multiple refresh attempts: just call 'refresh' once");
}
this.beanFactory.setSerializationId(getId());
}
由上面可知仅仅只是获取一个内部BeanFactory且不做处理。