Встречается на собеседованиях • сегодня
Как вызвать destroy() у Prototype бина
В Spring destroy() метод у Prototype бина не вызывается автоматически контейнером, в отличие от Singleton бинов. Для вызова destroy() нужно:
- Реализовать
DisposableBeanинтерфейс или указать метод с аннотацией@PreDestroy - Самостоятельно вызвать destroy метод, когда бин больше не нужен
Пример:
java
@Component
@Scope("prototype")
public class PrototypeBean implements DisposableBean {
@Override
public void destroy() {
System.out.println("Destroying prototype bean");
}
}
// Где-то в коде:
ConfigurableApplicationContext context = ...;
PrototypeBean bean = context.getBean(PrototypeBean.class);
// Используем бин...
context.getBeanFactory().destroyBean(bean); // Явный вызов destroyВажно помнить, что ответственность за вызов destroy() лежит на клиентском коде.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы