Spring源码学习(一)

人对神秘的东西即好奇又恐惧,好奇心使人想一探究竟恐惧心又使人望而却步,工作了那么久对Spring源码一直怀有这样的心态,从来没有下决心进行研读,最近感觉压力在攀升,使自己不得不战胜恐惧心,进行更深入的学习,希望自己的学习同样也能给你小伙伴们带来一丝灵感。

         接下来将更加一下小例子来跟读一下源码的实现

Spring源码学习(一)

sping.xml

Spring源码学习(一)

 

从上面的代码加上以往的经验来看待上面的处理逻辑:

1. 读取xml

2. 解析xml

3. 通过反射生产bean对象

         难道真的如此而已,如果只是这样,那样岂不是人人都可以写一个Spring框架了,答案当然是否定的我们伟大的风靡全球的Spring不会如此之简单的。

         先更加实例化时序图来进行来大概先看下执行流程:

Spring源码学习(一)

 

         我们时序图的入口还是测试类,当执行main方法是开始处理整个逻辑。接下来我们再看下上面个各类的层级接口,来先大概了解下他们的家庭族谱。

1.ClassPathResource:

Spring源码学习(一)

 

再来看下他能做些什么:

Spring源码学习(一)

2. XmlBeanFactory 庞大的族谱

Spring源码学习(一)

再看下他能做什么(其实它只有两个构造,一个实参):

Spring源码学习(一)

4.XmlBeanDefinitionReader(比较重要的一个类)

Spring源码学习(一)

主要方法:

Spring源码学习(一)

 

到这里应该对Spring的处理流程和个各类的族谱关系和主要方法都有了一个大概的了解,由于有些事情今天先到此为止,以上内容也是自己学完之后的一个总结和自己的了解,如有哪里有误或者不好的地方欢迎提出,共同成长多谢。

个人公众号欢迎共同成长和交流

Spring源码学习(一)