Определение spring ApplicationContext
очень неоднозначно, я почти закончу целую книгу учебника, но до сих пор не могу понять, что означает ApplicationContext
.
В соответствии с API spring ApplicationContext
:
Центральный интерфейс для настройки конфигурации приложения. Это доступно только для чтения, пока приложение запущено, но может быть перезагружено, если реализация поддерживает это.
Корневой интерфейс для доступа к контейнеру spring bean. Это основной клиентский вид контейнера bean.
Сверху мои вопросы:
1) Я продолжаю видеть в книге упомянутый "контейнер", к чему относится контейнер? Один контейнер означает один java-процесс? или один контейнер относится к одному объекту ApplicationContext
?
2) Если я создаю два ApplicationContext
в одном приложении Java (оба в main
body), являются ли эти два интерфейса одним центральным контейнером? Или два отдельных экземпляра? См. Код ниже, в чем разница между context1
и context2
? Если в Beans.xml
есть Singleton, он вызывается context1
и context2
, являются ли они двумя отдельными экземплярами или одним и тем же экземпляром?
ApplicationContext context1 = new ClassPathXmlApplicationContext("Beans.xml");
ApplicationContext context2 = new ClassPathXmlApplicationContext("Beans.xml");