spring底层
- spring容器对象什么时候被加载?spring中配置的bean怎么被创建的呢?
答:当new ClassPathXmlApplicationContext("xml配置文件名(applicationContext.xml)")
时会创建spring
容器对象——ac
。applicationContext.xml
文件如下图:
同时,applicationContext.xml
文件中配置的bean
对象会被创建到内存(类似Hashmap
的数据结构)中。其中id
对应key,对象
对应value,bean与bean之间的依赖关系在内存中通过箭头指向建立联系:
- 那么,
applicationContext.xml
中的bean是如何加载到内存中的呢?
通过反射机制将配置文件中的bean加载到内存中!!
即spring容器扫描配置文件,使用反射机制在内存里创建spring容器对象(applicationContext
对象)的引用(即ac
,ac即上图的applicationContext
对象)。
而接下来:通过getbean,从内存中的applicationContext
对象得到userService的bean对象us
(对象是引用类型,故us是一个地址,指向内存中id为userService的地方)