Ответ
В Spring, prototype bean — это бин, который создаётся каждый раз заново при запросе из контекста. В отличие от singleton (по умолчанию), где один экземпляр на весь контекст.
Пример:
@Configuration
public class AppConfig {
@Bean
@Scope("prototype")
public MyPrototypeBean myPrototypeBean() {
return new MyPrototypeBean();
}
}
Особенности:
- Каждый
getBean()
или инжект создаёт новый экземпляр - Подходит для stateful компонентов
- Spring не управляет полным lifecycle (не вызывает destroy-методы)
- Может привести к утечкам памяти, если не контролировать создание
Используется, когда нужно независимое состояние для каждого использования.