Что такое ApplicationContext в Spring?
- Что делает контейнер Spring?
ApplicationContext — контейнер бинов: создаёт их, внедряет зависимости, управляет жизненным циклом и даёт инфраструктуру — события, свойства, профили, ресурсы.
- Создаётся при старте приложения (SpringApplication.run)
- Singleton-бины создаются сразу — ошибки конфигурации видны на старте
- Закрывается при остановке — вызываются @PreDestroy
А ещё Сам является BeanFactory с расширениями
Подробно
Контекст читает конфигурацию — аннотации, Java-классы конфигурации, сканирование пакетов — и строит из неё описания бинов, после чего создаёт объекты и связывает их между собой. Сверх базового контейнера он умеет ещё несколько вещей: публикацию событий приложения, доступ к настройкам окружения и профилям, работу с ресурсами и интернационализацию. Контекст запроса — совсем другая сущность и живёт лишь на время одного обращения.
Что хотят услышать
- Определение и функции.
Частые ошибки
- Путать контекст приложения с файлом настроек.
- Считать, что контекст существует на время запроса.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Файл конфигурации приложения со всеми настройками подключения к базе и брокеру
- ✗Пул соединений с базой данных, который Spring создаёт при старте приложения
- ✗Контекст текущего HTTP-запроса с его заголовками, параметрами и сессией
- ✓Контейнер, который создаёт бины и управляет их жизненным циклом
Что спросят дальше
- Какие способы задать конфигурацию контекста существуют?
- Что такое профиль и зачем он нужен?
Разбор темы
- ApplicationContext и конфигурация
BeanFactory против ApplicationContext, способы конфигурации, @Configuration full/lite, профили и Environment, @Conditional.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.