关于通过实现ApplicationContextAware接口并重写setApplicationContext方法获取ApplicationContext的实例
关于通过实现ApplicationContextAware接口并重写setApplicationContext方法获取ApplicationContext的实例,这个要追溯到ApplicationContextAwareProcessor.java
看这个ApplicationContextAwareProcessor的invokeAwareInterfaces(Object bean) 方法,他对实现了Aware接口的bean进行注入相对应的实例。
invokeAwareInterfaces方法会在ApplicationContextAwareProcessor类中的postProcessBeforeInitialization方法中被调用,
postProcessBeforeInitialization方法会在AbstractAutowireCapableBeanFactory类中的applyBeanPostProcessorsBeforeInitialization方法中被调用,
applyBeanPostProcessorsBeforeInitialization方法会在AbstractAutowireCapableBeanFactory类中的initializeBean方法中被调用