How does one access the ApplicationContext
inside of a BeanDefinitionRegistryPostProcessor
(BDRPP)? I have the following BDRPP.
public class MyCustomBeansFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
// Need to access ApplicationContext here
System.out.println("Got Application Context: " + applicationContext);
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
}
}
Tried adding @Autowired and even made my CustomBDRPP implement ApplicationContextAware
but the ApplicationContext is not injected/initialized.
public class MyCustomBeansFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor, ApplicationContextAware {
//@Autowired
private ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) {
applicationContext = context;
}
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
System.out.println("Got Application Context: " + applicationContext);
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
}
}
Output:
Got Application Context: null
How can this be achieved?