- он был полностью обновлен() хотя бы один раз, поэтому я могу быть уверен, что beanFactory завершил создание всех своих компонентов и
- никакое последующее обновление() в настоящее время не выполняется. прогресс
Если вы посмотрите на org.springframework.context.support.AbstractApplicationContext#refresh, вы увидите, среди прочего, следующие шаги:
Код: Выделить всё
public void refresh() throws BeansException, IllegalStateException {
// :
prepareRefresh(); // makes this.isActive() return true
// :
finishBeanFactoryInitialization(beanFactory);
// internally calls:
// beanFactory.freezeConfiguration() -> makes beanFactoroy.isConfigurationFrozen() return true
// beanFactory.preInstantiateSingletons()
// :
finishRefresh();
}
/>В идеале я бы ожидал
- Метод ConfigurationApplicationContext.isRefreshed(), который будет указывать, был ли контекст полностью обновлен хотя бы один раз, и
- КонфигурируемыйApplicationContext.isBeingRefreshed(), который будет указывать, было ли обновление, первое или следующий в настоящее время находится в разработке.
Код: Выделить всё
public void refresh() throws BeansException, IllegalStateException {
// Addition 1
setIsBeingRefreshed(true)
// :
prepareRefresh();
// :
finishBeanFactoryInitialization(beanFactory);
// Addition 2
setIsBeingRefreshed(false)
setIsRefreshed(true)
// :
finishRefresh();
}
Но таких методов не существует, поэтому мне интересно, знаете ли вы что-нибудь эффективно эквивалентное.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ut-using-a
Мобильная версия