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

Создан ли объект бина на этапе вызова BeanPostProcessor

Нет, BeanPostProcessor работает с уже созданными экземплярами бинов, но до их полной инициализации.

Этапы работы BeanPostProcessor:

  1. postProcessBeforeInitialization - вызывается после создания экземпляра, но до вызова init-методов (@PostConstruct, InitializingBean).
  2. postProcessAfterInitialization - вызывается после всех init-методов.

Пример:

java
@Component
public class MyBeanPostProcessor implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) {
        System.out.println("Before init: " + beanName);
        return bean;
    }
    
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) {
        System.out.println("After init: " + beanName);
        return bean;
    }
}

Объект уже создан (вызван конструктор), но зависимости и init-логика могут быть еще не применены.

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

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

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

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