本节将对ServletContextApplicationContextInitializer进行分析,关于该对象的基础定义代码如下:
public class ServletContextApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableWebApplicationContext>, Ordered {}
从上述基础定义代码中可以发现ServletContextApplicationContextInitializer并未实现其他接口,下面对ServletContextApplicationContextInitializer成员变量进行说明,详细内容见表4-4。
表4-4 ServletContextApplicationContextInitializer成员变量
下面对ApplicationContextInitializer的实现方法进行分析,具体处理代码如下:
public void initialize(ConfigurableWebApplicationContext applicationContext) { // 为Web应用上下文设置Servlet上下文 applicationContext.setServletContext(this.servletContext); // 判断是否需要添加属性 if (this.addApplicationContextAttribute) { // 添加根Web应用上下文 this.servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_ CONTEXT_ATTRIBUTE, applicationContext); } }
在上述代码中主要的处理流程有两个:
(1)为Web应用上下文对象设置Servlet上下文;
(2)判断是否添加应用属性,如果需要会给Servlet上下文设置根Web应用上下文这个属性。