For us to be able to pre-process an ApplicationContext at build-time, we need a way to "refresh" it up to a point where it is ready to create bean instances, this includes:

  • Prepare the BeanFactory
  • Invoke BeanDefinitionRegistryPostProcessor implementations
  • Invoke MergedBeanDefinitionPostProcessor implementations (note that these are special extensions of BeanPostProcessor that operates at the (merged) BeanDefinition level