Junior — Middle
86
Какое отличие между областями видимости Singleton и Prototype в контексте Spring Framework?
Компании, где спрашивали
Prooftech
Stroki
ITFB Group
Тетрасофт
Ответ от нейросети
sobes.tech AI
В Spring Framework области видимости (scopes) определяют жизненный цикл и видимость бинов.
-
Singleton — это область видимости по умолчанию. В этом случае Spring создаёт один экземпляр бина на весь контейнер Spring. Все запросы к этому бину получают один и тот же объект. Это экономит ресурсы и удобно для сервисов, которые не хранят состояние.
-
Prototype — при этой области видимости Spring создаёт новый экземпляр бина каждый раз, когда он запрашивается из контейнера. Это полезно, когда нужен отдельный объект с собственным состоянием для каждого использования.
Пример:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// каждый вызов getBean() создаст новый объект
}
@Component
public class MySingletonBean {
// по умолчанию singleton
}
Таким образом, Singleton — один объект на приложение, Prototype — новый объект при каждом запросе.