Какое количество инстансов контроллера создается в Spring MVC при его использовании?

В Spring MVC контроллеры по умолчанию являются синглтонами, то есть для каждого контроллера создается ровно один инстанс на весь жизненный цикл приложения.

Короткий ответ

Что ответить на собеседовании

В Spring MVC контроллеры по умолчанию являются синглтонами, то есть для каждого контроллера создается ровно один инстанс на весь жизненный цикл приложения. Это связано с тем, что Spring контейнер управляет бинами контроллеров и создает их как singleton scope, если явно не указано иное.

Подробный разбор

Ответ с пояснениями

В Spring MVC контроллеры по умолчанию являются синглтонами, то есть для каждого контроллера создается ровно один инстанс на весь жизненный цикл приложения. Это связано с тем, что Spring контейнер управляет бинами контроллеров и создает их как singleton scope, если явно не указано иное.

Такой подход позволяет эффективно использовать ресурсы и обеспечивает потокобезопасность при правильной реализации контроллера (без состояния, зависящего от запроса). Если требуется другой scope, например, prototype или request, это можно указать аннотацией @Scope.

Пример:

@Controller
@Scope("singleton") // по умолчанию
public class MyController {
    // методы обработки запросов
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее