Встречается на собеседованиях • сегодня
Можно ли запустить PreDestroy в Prototype
В Spring @PreDestroy не вызывается для бинов с областью видимости prototype. Это связано с тем, что Spring не управляет полным жизненным циклом prototype-бинов — после создания и передачи клиенту контейнер больше не отслеживает их состояние. Если нужно выполнить cleanup, можно:
- Использовать ручное управление (например, явный вызов метода).
- Реализовать
DisposableBeanилиAutoCloseableи вызыватьclose()вручную.
Пример:
java
@Component
@Scope("prototype")
public class PrototypeBean implements AutoCloseable {
@Override
public void close() {
System.out.println("Cleanup logic here");
}
}
// Использование:
try (PrototypeBean bean = context.getBean(PrototypeBean.class)) {
// работа с бином
} // close() вызовется автоматически
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы