I understand the usage of BeanFactoryPostProcessor where we can modify metadata of bean definitions by writing our custom class which implements BeanFactoryPostProcessor. But I fail to understand Why or What is the advantage of changing metadata value via BeanFactoryPostProcessor when I can simple change it in the spring xml itself.