Sobes.tech
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 — новый объект при каждом запросе.