BeanPostProcessor vs BeanFactoryPostProcessor

BeanFactoryPostProcessors affect BeanDefinition objects because they are run right after your configuration is read in. There are no bean instances created yet. So it can’t do anything to your objects instances yet. For Example the PropertyPlaceholderConfigurer is a BeanFactoryPostProcessor, which looks through the BeanDefinition objects and replaces any ${property.name} with the actual value of property.name…