Встречается на собеседованиях • сегодня
Управляет ли Spring жизненным циклом бина, если используется Prototype
Да, Spring управляет жизненным циклом prototype-бина, но только до момента его создания и инициализации. После возврата бина клиенту Spring больше не отслеживает его состояние.
Для prototype-бинов:
- Вызываются callback-методы
@PostConstructиInitializingBean.afterPropertiesSet() - Не вызываются
@PreDestroyиDisposableBean.destroy()(т.к. Spring не отслеживает завершение жизни prototype-бинов)
Пример:
java
@Component
@Scope("prototype")
public class PrototypeBean implements InitializingBean, DisposableBean {
@PostConstruct
public void init() {
System.out.println("PostConstruct called");
}
@Override
public void afterPropertiesSet() {
System.out.println("afterPropertiesSet called");
}
@PreDestroy
public void cleanup() {
// Не будет вызван для prototype!
System.out.println("PreDestroy called");
}
@Override
public void destroy() {
// Не будет вызван для prototype!
System.out.println("destroy called");
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы