Junior — Middle
Aký je rozdiel medzi oblasťami viditeľnosti Singleton a Prototype v kontexte Spring Framework?
sobes.tech AI
Odpoveď od AI
В Spring Framework области видимости (scopes) определяют жизненный цикл и видимость бинов.
-
Singleton — это область видимости по умолчанию. В этом случае Spring создаёт один экземпляр бина на весь контейнер Spring. Все запросы к этому бину получают один и тот же объект. Это экономит ресурсы и удобно для сервисов, которые не хранят состояние.
-
Prototype — при этой области видимости Spring создаёт новый экземпляр бина каждый раз, когда он запрашивается из контейнера. Это полезно, когда нужен отдельный объект с собственным состоянием для каждого использования.
Пример:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// каждый вызов getBean() создаст новый объект
}
@Component
public class MySingletonBean {
// по умолчанию singleton
}
Таким образом, Singleton — один объект на приложение, Prototype — новый объект при каждом запросе.