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

Почему к Prototype нельзя применить @PreDestroy

Метод @PreDestroy не работает с Prototype бинами, потому что Spring не управляет их полным жизненным циклом. В отличие от Singleton, где Spring контролирует создание, инициализацию и уничтожение, для Prototype Spring только создаёт экземпляр и передаёт его клиенту. Дальнейшее управление (включая вызов деструкторов) ложится на клиента.

Пример:

java
@Component
@Scope("prototype")
public class PrototypeBean {
    @PreDestroy
    public void cleanup() {
        System.out.println("Этот метод не вызовется автоматически!");
    }
}

Чтобы освободить ресурсы, нужно явно вызывать методы (например, через DisposableBean или кастомный интерфейс).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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