`

spring 加载

阅读更多
1. web.xml中的ContextLoaderListener根据ContextConfigLocation加载配置文件。
   过程摘要:
   a.根据ContextLoader.properties将org.springframework.web.context.support.XmlWebApplicationContext设为SystemProperties
   b.loadParentContextlocator.useBeanFactory(parentContextKey)
2. 先将beans.xml中的各个bean定义加载到WebApplicationContext中,加载的过程中,解析xml的各种节点,如bean ,import, alias等。
   过程摘要:
   createDefinition->loadBeanDefinitions, refreshBeanFactory,loadBeanDefinitions
3. 加载的过程中只加载并不实例化,默认情况下是假如bean Id相同,那么覆盖
4. 全部加载完成之后, 开始实例化
   initializeDefinition 将bean放到singletonCache中,
   并return beanDefines
5. 将beanDefines,servletContext,configLocation放到WebApplicationContext中
6. 将WebApplicationContext放到servletContext中。

spring还可以定义子容器,
  
public class SessionContext extends XmlBeanFactory{
	private GlobalSession globalSession;
	public static final String CONTEXT_CONFIG_FILE = "WEB-INF/sessionContext.xml";
	
	public SessionContext(GlobalSession globalSession,String configLocations, ApplicationContext parent) throws BeansException {
		super(new FileSystemResource(configLocations), [color=darkred]parent[/color]);
		this.globalSession = globalSession;
	}

	public GlobalSession getGlobalSession() {
		return globalSession;
	}
}

这样,当加载的时候,可以先从子容器SessionContext中加载,当加载不到的时候,spring会自动去搜索parent容器里的bean.
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    spring加载顺序讨论

    本文将详细探讨Spring加载顺序,并结合`@PostConstruct`、`构造方法`以及`@Autowired`等关键注解进行深入解析。 首先,Spring容器在启动时会读取配置文件(如XML或Java配置类),根据配置信息创建Bean的定义。Bean...

    spring加载restful(文档+程序源码).zip

    《Spring加载RESTful服务详解及源码分析》 在当今的Web开发中,RESTful API已经成为构建可扩展、易于维护的系统的重要组成部分。Spring框架,作为Java生态系统中的中流砥柱,提供了强大的支持来实现RESTful服务。本...

    Spring 加载多个配置文件

    ### Spring 加载多个配置文件详解 #### 一、引言 在现代软件开发中,Spring 框架因其强大的依赖注入(DI)和面向切面编程(AOP)能力而备受青睐。尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统...

    spring加载

    标题“spring加载”涉及到的是Spring框架的初始化过程,这一过程对于理解Spring如何管理bean和依赖注入至关重要。在Spring框架中,加载是指从配置文件(如XML、Java配置或注解)中读取bean定义,并创建bean实例的...

    day38 04-Spring加载配置文件

    今天我们将深入探讨"day38 04-Spring加载配置文件"这一主题。 首先,Spring框架提供了两种主要的配置方式:XML配置和Java配置。XML配置是最传统的形式,通过`<beans>`标签定义bean及其属性。而Java配置则是通过注解...

    spring加载restful(文档+程序源码)

    spring加载restful(文档+程序源码) 通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTTP方法(如,...

    Spring加载Bean: AbstractBeanFactory.xmind

    Spring加载Bean: AbstractBeanFactory.xmind

    详解spring boot容器加载完后执行特定操作

    "Spring Boot 容器加载完成后执行特定操作" Spring Boot 框架提供了多种方式来执行容器加载完成后的特定操作,例如使用 ApplicationListener 接口或使用 @PostConstruct 注解。在本文中,我们将介绍使用 ...

    spring加载多个配置文件

    在Spring框架中,加载多个配置文件是常见的需求,特别是在大型项目中,为了保持代码的整洁和模块化,通常会将不同的配置分散到多个文件中。本文将深入探讨如何在Spring中实现这一功能。 首先,Spring提供了多种方式...

    详解Spring加载Properties配置文件的四种方式

    Spring加载Properties配置文件的四种方式 Spring框架提供了多种方式来加载Properties配置文件,以便于应用程序读取和使用配置信息。下面将详细介绍四种常见的加载Properties配置文件的方式。 方式一: 通过context:...

    Spring加载加密的配置文件详解

    现在,当Spring加载`db.properties`时,`EncryptPropertyPlaceholderConfigurer`会自动解密`db.password`,并将其作为安全的密码值传递给应用程序的其他组件。 总之,通过自定义`PropertyPlaceholderConfigurer`...

    简洁版的spring ioc自行实现 研究spring 加载机制

    简洁版的spring ioc自行实现,不到10个类,描述了加载机制,是研究IOC DI的好材料,能够了解IOC原理。目标是了解基本原理,所以没考虑循环引用的情况 完整的ECLIPSE工程,直接导入就可使用。 里面有测试例子,单步...

    Spring加载XSD文件发生错误的解决方法

    Spring加载XSD文件发生错误的解决方法 在使用 Spring 框架时,可能会遇到加载 XSD 文件发生错误的问题,本文将对此问题进行详细的分析和解决。 问题描述 在使用 Spring 框架时,可能会出现 org.xml.sax....

    Spring中使用classpath加载配置文件浅析

    首先,我们来看一下Spring加载配置文件的基本方式。在Spring中,可以通过ApplicationContext接口的实现类,比如ClassPathXmlApplicationContext,来加载位于classpath中的配置文件。例如,创建一个...

    让spring加载自己的properties配置文件,在代码中获得配置信息

    Spring提供了一种优雅的方式来加载`.properties`配置文件,使得开发者可以将配置信息与代码分离,提高应用的可维护性和灵活性。本文将详细介绍如何让Spring自动加载自定义的`.properties`配置文件,并在代码中获取...

    Spring中如何加载多个配置文件.pdf

    ### Spring框架中加载多个配置文件的方法 在Spring框架中,加载多个配置文件是常见的需求之一。这不仅可以帮助我们更好地组织代码结构,还可以提高程序的可维护性和可扩展性。本文将详细介绍Spring框架中如何加载多...

    加载jar包中的spring配置文件

    当我们构建一个基于Spring的应用时,经常需要从jar包中加载配置文件,以便管理依赖注入和其它服务。在Spring中,我们通常使用`classpath:`或`classpath*:`前缀来指定资源的位置。这两个前缀在处理多个类路径位置时有...

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它使得开发者在开发过程中无需重启应用就能实时更新配置,极大地提高了开发效率。热部署方案是这一功能的具体应用,它允许我们在不中断服务的情况下,对应用程序...

Global site tag (gtag.js) - Google Analytics