Назад к вопросам
Формат кода
Junior — Middle
84
Чем отличается область видимости Singleton и Prototype в контексте инъекций зависимостей?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В контексте внедрения зависимостей область видимости (scope) определяет жизненный цикл и количество экземпляров создаваемых объектов.
-
Singleton: объект создаётся один раз на весь жизненный цикл приложения или контейнера DI. Все запросы на эту зависимость получают один и тот же экземпляр. Это удобно для сервисов, которые должны сохранять состояние или быть общими.
-
Prototype: при каждом запросе создаётся новый экземпляр объекта. Это полезно, когда требуется независимый объект с собственным состоянием.
Пример:
// Singleton scope
@Component
@Scope("singleton")
public class MyService {
// один экземпляр на приложение
}
// Prototype scope
@Component
@Scope("prototype")
public class MyPrototypeService {
// новый экземпляр при каждом запросе
}
Таким образом, Singleton обеспечивает единый экземпляр, а Prototype — множество независимых экземпляров, что влияет на управление состоянием и производительность приложения.