美文网首页
spring源码梳理(一)ClassPathXmlApplica

spring源码梳理(一)ClassPathXmlApplica

作者: 彭阿三 | 来源:发表于2020-07-02 09:50 被阅读0次

我们了解spring源码在平时的开发中能够更快速的去定位问题,并且能够去学习这些框架中的设计模式

环境搭建

1.在idea中创建一个maven工程

      相信大家都很熟悉,所以本文中略过。

2.创建一个java类

3.创建SpringBean配置文件

4.pom文件

说明:项目目录如下:其中MyApp类是和App类类似可以不用管。

进入spring源码--debug调试

首先我们要从main入口开始,进入ClassPathXmlApplicationContext类,如图:

然后进入到如下如代码部分:

调用自己的构造函数,传入configLocation配置文件信息,此处configLocation=SpringBean.xml,一个refresh参数为true,还一个空的上下文对象,然后进入:

这是refresh参数用到了,进入if逻辑,调用一个refresh方法,在此之前setConfigLocations主要是加载Spring配置文件的位置。下面是refresh方法代码如下:

其中,核心方法this.obtainFreshBeanFactory(),进入到这个方法代码如下:

主要有两个方法this.refreshBeanFactory()和this.getBeanFactory(),其中refreshBeanFactory()代码如下:

总的来说ClassPathXmlApplicationContext 这种形式的Spring配置文件的加载主要是下面的过程:

A:加载配置文件名到系统配置

B:销毁已有的Beans和BeanFactory

C:创建新的BeanFactory

D:加载Beans,分析Bean中的节点,然后加载到BeanFactory,BeanFactory生效。

相关文章

网友评论

      本文标题:spring源码梳理(一)ClassPathXmlApplica

      本文链接:https://www.haomeiwen.com/subject/pgjlqktx.html