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

В чем разница между destroy() в бинах Singleton и Prototype

Для Singleton бинов destroy() вызывается при завершении работы контекста Spring, так как бин существует в единственном экземпляре. Для Prototype бинов Spring не управляет их жизненным циклом после создания, поэтому destroy() не вызывается автоматически — ответственность за очистку лежит на клиентском коде.

Пример:

java
@Bean(destroyMethod = "cleanup")
public SingletonBean singletonBean() {
    return new SingletonBean();
}

@Bean
@Scope("prototype")
public PrototypeBean prototypeBean() {
    return new PrototypeBean();
}

Здесь cleanup() вызовется только для SingletonBean. Для PrototypeBean нужно явно вызывать метод очистки.

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

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

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

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