Этот вопрос проверяет знание концепции контекста приложения (ApplicationContext) и его возможностей в Spring.
В Spring может быть несколько контекстов приложения. Обычно используется один корневой контекст, но можно создавать дочерние контексты для изоляции бинов и настройки их взаимодействия.
Контекст приложения (ApplicationContext) — это контейнер Spring, который управляет созданием и жизненным циклом бинов. Возможность создавать несколько контекстов помогает структурировать сложные приложения.
Один или несколько контекстов:
В простых приложениях часто используется один корневой контекст.
В сложных приложениях можно создать иерархию контекстов: корневой и дочерние.
Зачем нужны несколько контекстов:
Разделение логики: например, отделение веб-слоя от бизнес-слоя.
Изоляция: каждый контекст может содержать свои бины, которые не видны другим контекстам.
Повторное использование: общий корневой контекст может предоставлять бины нескольким дочерним контекстам.
Пример: В приложении на основе Spring MVC обычно создаются два контекста:
Корневой контекст (например, бизнес-логику и доступ к данным).
Веб-контекст, содержащий бины веб-слоя (например, контроллеры).
Создание нескольких контекстов:
ApplicationContext parentContext = new AnnotationConfigApplicationContext(ParentConfig.class);
AnnotationConfigApplicationContext childContext = new AnnotationConfigApplicationContext();
childContext.setParent(parentContext);
childContext.register(ChildConfig.class);
childContext.refresh();Заключение:
Несколько контекстов полезны для сложных приложений с несколькими уровнями изоляции или различными областями ответственности.