`

Spring 源码分析(一)ApplicationContext

 
阅读更多
web容器初始化时,因为配置了spring的ContextLoaderListener,所以会执行ContextLoaderListener的contextInitialized(ServletContextEvent event) 方法。
在这个方法中,
public void contextInitialized(ServletContextEvent event) {
this.contextLoader = createContextLoader();
if (this.contextLoader == null) {
this.contextLoader = this;
}
this.contextLoader.initWebApplicationContext(event.getServletContext());
}
在initWebApplicationContext中,又调用
this.context = createWebApplicationContext(servletContext, parent);
servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, this.context);

这样,在容器初始化时,就在servletcontext中设定了key为 WebApplicationContext.class.getName() + ".ROOT"
value为ApplicationContext
的初始上下文。

所以,通过WebApplicationContextUtils的
public static WebApplicationContext getRequiredWebApplicationContext(ServletContext sc)
即可取得上下文。
分享到:
评论

相关推荐

    三、Spring源码分析——ApplicationContext

    《Spring源码分析——ApplicationContext》 在Java世界中,Spring框架是不可或缺的一部分,它以其强大的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,极大地...

    spring源码分析(一)

    ### Spring源码分析知识点 #### 一、Spring框架概述 Spring框架是一个全面的企业级应用开发框架,它通过一系列模块化的组件来支持不同的应用场景和技术需求。Spring的核心价值在于提供了一种简洁的方式来解决企业...

    Spring源码分析

    以上只是Spring源码分析的部分内容,实际源码中还包括Spring的其他模块,如Spring Batch(批处理)、Spring Security(安全)、Spring Integration(集成)等。理解并掌握Spring源码,有助于我们更好地利用Spring...

    Spring源码分析_Spring_IOC

    ### Spring源码分析_Spring_IOC:深入理解Spring的IOC容器机制 #### 基本概念与核心作用 在探讨Spring框架的核心组件之一——IOC(Inversion of Control,控制反转)容器之前,首先需要理解它在Spring框架中的角色...

    Tom_深入分析Spring源码

    《Spring源码分析》这份资料深入探讨了Spring框架的核心机制,尤其聚焦于Spring5版本。Spring作为Java领域中最重要的轻量级应用框架之一,它的设计理念、实现方式以及工作原理对于任何想成为优秀Java开发者的人都至...

    咕泡学院_Tom_JavaVIP课程_深入分析Spring源码(第一阶段)1

    1. **依赖注入**:Spring 使用容器(ApplicationContext)来管理对象(Bean),并根据配置自动装配 Bean 之间的依赖关系,减少了手动创建和管理对象的复杂性。 2. **面向切面编程(AOP)**:Spring 提供了面向切面...

    Spring源码解析.zip

    本压缩包“Spring源码解析”提供了对Spring框架核心组件——IOC(Inversion of Control,控制反转)、AOP(Aspect Oriented Programming,面向切面编程)以及Transaction(事务管理)的源码分析,帮助开发者更全面地...

    Spring源码分析.rar

    《Spring源码分析》 Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现方式一直是许多开发者深入研究的对象。这份"Spring源码分析"资料深入探讨了Spring的核心机制,帮助我们理解其背后的原理,从而...

    spring 源码中文注释

    在源码分析的过程中,读者会深入理解Spring的内部工作机制,例如如何解析配置、如何创建bean实例、如何实现AOP代理等。这将有助于开发者编写更高效、更健壮的代码,也能为参与Spring的扩展或定制打下坚实基础。 总...

    Spring 源码分析文档----自用

    ### Spring 源码分析——设计模式篇 #### 一、引言 Spring框架作为Java企业级开发领域中不可或缺的一部分,其内部集成了多种设计模式,不仅有助于提高系统的可维护性和扩展性,还能够帮助开发者更好地理解和应用...

    Spring源码学习一:源码分析概述1

    学习Spring源码需要坚持和技巧,不要试图一下子理解所有的细节,而是逐步剖析和掌握每个组件的实现原理。 在学习Spring源码时,需要关注以下几个方面: 1. Spring的核心组件:包括BeanFactory、ApplicationContext...

    Spring源码深度解析第二版

    Spring源码深度解析第二版 Spring是一款广泛应用于Java企业级应用程序的开源框架,旨在简化Java应用程序的开发和部署。Spring框架的核心主要包括了IoC容器、AOP、MVC框架等模块。 第1章 Spring整体架构和环境搭建 ...

    二、Spring源码分析——BeanFactory

    《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...

    spring源码(注释+测试版)

    这份"spring源码(注释+测试版)"提供了Spring框架的源代码,带有注释和测试用例,对于开发者深入理解Spring的工作原理非常有帮助。 1. **spring-core**:这是Spring框架的基础模块,包含了核心的工具类和资源处理...

    Java架构师之源码分析专题SpringBoot2.x、Spring5、SpringMVC、Mybatis源码分析

    源码分析将涵盖`ApplicationContext`的初始化过程,AOP(面向切面编程)的实现,以及事件传播机制。通过对这些核心组件的了解,可以提高你的Spring应用性能和可维护性。 SpringMVC作为Spring框架的一部分,负责处理...

    深入分析Spring源码.docx

    Spring源码分析不仅仅是对具体实现的探究,更是对设计模式和软件工程原则的深入理解。通过对Spring源码的学习,开发者可以提升自己的设计能力,更好地理解和应用这些模式于实际项目中,提高代码质量和可维护性。因此...

    Spring核心源码解析.pdf

    本篇文档将对Spring框架的核心源码进行解析,以帮助开发者更深入地理解Spring的工作原理和核心概念。 首先,Spring框架通过使用IoC容器来管理应用对象的创建和依赖关系。这种做法可以让程序员从创建对象的复杂性中...

    Tom_深入分析Spring源码doc

    本篇文章将针对“Tom_深入分析Spring源码doc”中的关键知识点进行详细的阐述。 1. **依赖注入(Dependency Injection,DI)** Spring的核心特性之一就是依赖注入,它使得组件间的依赖关系由Spring容器管理,而不是...

    Spring 源码分析,很好的希望大家有时间看看

    源码分析对于理解Spring的工作原理、优化应用性能以及进行二次开发至关重要。让我们深入探讨Spring框架的一些核心概念和机制。 1. **依赖注入(Dependency Injection,DI)**:Spring的核心特性之一,通过DI,...

    Struts+Spring源码分析(喜欢分析源码的有福了)

    Spring源码分析: 1. **ApplicationContext**:Spring的上下文容器,管理所有bean的生命周期,提供了依赖注入的功能。 2. **BeanFactory**:基础的bean工厂,负责创建和管理bean。 3. **AOPProxy**:Spring AOP的...

Global site tag (gtag.js) - Google Analytics