Back to questions
Формат кода
Junior — Middle
90
Чем отличается область видимости Singleton и Prototype в контексте инъекций зависимостей?
Companies where asked
Answer from AI
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 — множество независимых экземпляров, что влияет на управление состоянием и производительность приложения.