Spring源码解析(一)
犹豫了很久一直不敢开始写,在这个入职之日趁着无导师(导师出去浪了,具体去哪自己脑补吧)监督,零星记录点吧,作为自己的总结:
*容器的基础XmlBeanFactory*
bean是Spring中最核心的东西,因为Spring就像书架,你把bean放进书架里。谁会去使用就不关你的事了。因此我们从简单的getBean()方法入手吧。
applicationContext.xml是spring的配置文件,里面包含一个名为myTestBean的Bean。
BeanFactory bf = new XmlBeanFactory(new ClassPathResource(“applicationContext.xml”));
MyTestBean bean = (MyTestBean) bf.getBean(“myTestBean”);
这是一个非常简单的Spring入门函数了。
################注意这里说一下#################
先看BeanFactory的继承关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rDjYf6pq-1624430344852)(https://www.pianshen.com/images/510/11d3733b6b63c5ac504f163067a738ee.png)]
*此图出自作者:钱书康。
* 出处:http://www.cnblogs.com/zrtqsk/p/4028453.html 这篇博客也很好,推荐大家去阅读。
为什么要从XmlBeanFactory开始说起呢,在Spring3.1以后XmlBeanFactory类被废除了,至于为什么会废除呢?有一下几点看法,希望以此能抛砖引玉真正的到XmlBeanFactory被废除的原因吧.
**XmlBeanFactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认实现,而对于XmlBeanFactory和DefaultListableBeanFactory不同的地方其实是在XmlBeanFactory中使用了自定义的XML读取器XmlBeanDefinitionReader,实现了