Встречается на собеседованиях • сегодня

Какие знаешь ситуации, когда метод с аннотацией PreDestroy никогда не сработает у Bean в Spring

Метод с @PreDestroy не будет вызван в следующих случаях:

  1. Принудительное завершение JVM (например, System.exit() или kill -9). Spring не успевает вызвать хуки.

  2. Bean создан с областью видимости prototype - Spring не управляет полным жизненным циклом таких бинов, только инициализацией.

  1. Ошибка при создании контекста - если ApplicationContext не может быть создан, destroy-методы не выполняются.

  2. Bean создан через new - аннотации Spring не работают для объектов, созданных вручную.

  3. Использование @Scope("request")/@Scope("session") в standalone-приложении без поддержки веб-контекста.

Пример для prototype:

java
@Component
@Scope("prototype")
public class PrototypeBean {
    @PreDestroy
    public void cleanup() {
        // Этот метод никогда не вызовется
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы