Вопрос проверяет понимание механизмов кастомизации процесса создания бинов.
BeanPostProcessor - модификация созданных бинов
BeanFactoryPostProcessor - модификация конфигурации до создания бинов
Используются для расширения функциональности Spring.
1. BeanPostProcessor:
@Component
public class MyPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String name) {
// Действия до init-метода
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String name) {
// Действия после init-метода
return bean;
}
}2. BeanFactoryPostProcessor:
@Component
public class MyFactoryProcessor implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) {
// Модификация BeanDefinition
}
}Примеры использования:
Валидация бинов
Добавление прокси (например, для транзакций)
Изменение свойств перед созданием