Spring随笔(一)
Spring的IOC初始化过程
1.首先要知道三个类FileSystemXmlApplicationContext ClassPathXmlApplicationContext和XmlWebApplicationContext
1)一般项目中会用到ClassPathXmlApplicationContext作为容器(人称为上下文,有人称为环境其实基本上都是一个意思,就是一个桶装一些很花哨的东西)启动项目。
那就拿ClassPathXmlApplicationContext开始说吧,它的构造函数里面会有个一个方法refresh()方法。它的作用就好比方法注释上说的
1.Create a new ClassPathXmlApplicationContext with the given parent,
2.loading the definitions from the given XML files.
3.loading all bean definitions and creating all singletons.
4.Alternatively, call refresh manually after further configuring the context.
大体意思就是1.创建一个全新的ClassPathXmlApplicationContext(上下文)2.加载所有xml中的定义(定义到底是啥)3.加载所有的bean的定义并且全部创建成单例的
4.这个说的就是屁话,不用理解了 大体意思是 “或者,在进一步配置上下文之后手动调用refresh” (说和没说一样)
2)然后进入refresh()方法,这时你会看到好多方法,大概能有15个(不知道github上那群货有没有改过这块的代码,没有的话就先是15个吧)
第一个方法prepareRefresh();
这个方法的意思是准备好上下文,为的是去refresh
initPropertySources();
这时里面的一个方法,目的是啥呢,在上下文环境中初始化任何占位符属性源
第二个方法obtainFreshBeanFactory();
这个方法就非常重要,这个方法的目的是通知子类刷新内部的bean工厂

浙公网安备 33010602011771号