В Spring область действия (scope) Prototype означает, что каждый запрос на получение бина создаёт новый экземпляр этого бина.
Объясните концепцию области действия Prototype в контексте управляемых бинов Spring?
В Spring область действия (scope) Prototype означает, что каждый запрос на получение бина создаёт новый экземпляр этого бина.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Spring область действия (scope) Prototype означает, что каждый запрос на получение бина создаёт новый экземпляр этого бина.
В отличие от Singleton, где один экземпляр используется во всём приложении, Prototype создаёт новый объект при каждом вызове.
Это полезно, когда бин содержит состояние, которое не должно разделяться между разными клиентами или потоками.
Пример:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// поля и методы
}
При внедрении такого бина в Singleton, нужно учитывать, что Spring создаст один экземпляр Prototype при инициализации Singleton, а не при каждом вызове. Для решения используют ObjectFactory или Provider.
Таким образом, Prototype scope обеспечивает создание нового экземпляра бина при каждом запросе к контейнеру Spring.