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

Как изменить бин перед инициализацией

В Spring можно изменить бин перед инициализацией с помощью BeanPostProcessor. Это специальный интерфейс, который позволяет модифицировать бины до/после их инициализации.

Пример:

java
@Component
public class CustomBeanPostProcessor implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) {
        if (bean instanceof SomeService) {
            // Модификация бина перед init-методом
            ((SomeService) bean).setSomeProperty("customValue");
        }
        return bean;
    }
}

Ключевые моменты:

  • postProcessBeforeInitialization() вызывается после внедрения зависимостей, но до @PostConstruct и init-method.
  • Можно фильтровать бины по имени (beanName) или типу (instanceof).
  • Всегда возвращайте модифицированный (или исходный) бин.

Альтернативно можно использовать @PostConstruct, но он работает после внедрения зависимостей.

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

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

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

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