Back to questions
ОТП Банк
Junior — Middle
65
Какое отличие между областями видимости Singleton и Prototype в контексте Spring Framework?
Companies where asked
Prooftech
Stroki
ITFB Group
Тетрасофт
Answer from AI
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 — новый объект при каждом запросе.