Sobes.tech
Junior — Middle
93

Jaka jest różnica między zakresami Singleton i Prototype w kontekście Spring Framework?

Firmy, w których zadano pytania
Prooftech
Stroki
ITFB Group
Тетрасофт
ОТП БанкОТП Банк

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