继承了ServletContextAware接口类。那则可直接获取ServletContext。

获取流程

 1、Spring通过XmlWebApplication加载bean。

2、他会调用父类AbstractRefreshableWebApplicationContext,的postprocessBeanFactory方法

new ServletContextAwareProcessor(this.servletContext, this.servletConfig)

3,该类的postProcessBeforeInitialization方法如下。

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {  
    if (this.servletContext != null && bean instanceof ServletContextAware) {  
        ((ServletContextAware) bean).setServletContext(this.servletContext);  
    }  
    if (this.servletConfig != null && bean instanceof ServletConfigAware) {  
        ((ServletConfigAware) bean).setServletConfig(this.servletConfig);  
    }  
    return bean;  
}

 

posted on 2019-11-01 14:30  兜兜圈圈  阅读(1430)  评论(0编辑  收藏  举报