Spring源码之学习分享系列篇(三) 调用构造方法

一、开头

上篇主要分析的是spring源码的总体架构,今天我们开始具体源码分析。我们从spring ioc模块最基本的xml形式来探讨学习,把最基础的搞懂了,然后在此之上建立起来的一切技术也就好懂些了。


我们从第一行代码开始:
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml");

进入其构造方法,如下段代码:

	public ClassPathXmlApplicationContext(
			String[] configLocations, boolean refresh, @Nullable ApplicationContext parent)
			throws BeansException {

		// 调用父类构造方法,进行相关的对象创建等操作
		super(parent);//今天主要分析这行代码

		setConfigLocations(configLocations);//下篇分析

		if (refresh) {

			refresh();

		}
	}

二、详细说明

super(parent);

上面这行代码主要就是调用父类,初始化一些后续会用到的变量与对象。比如

1、初始化资源管理器(PathMatchingResourcePatternResolver),

2、初始化该容器的唯一标识 id,(初始化后如: org.springframework.context.support.ClassPathXmlApplicationContext@2ed94a8b),

3、初始化beanFactoryPostProcessors(容器的后置处理器),

4、初始化active和closed变量(默认都是false),

      active:指示此上下文当前是否处于活动状态的标志

      closed:指示此上下文是否已关闭的标志

5、applicationListeners(用来存放applicationListeners的集合对象),

6、validating(设置xml文件的验证标志,默认是true)。

还有一些其他变量和对象,这里我们只列举比较重要的。

三、总结

今天这个代码很简单,就是初始化后续会用到的变量及对象,下篇我们会分享spring是如何解析xml配置文件路径的,下篇会是个小重点,敬请关注,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值