spring IOC容器初始化和注入

xiaoxiao2021-02-27  366

IOC容器的初始化:

1.  BeanDefinition的Resource定位、载入和注册。

2.  Resource定位:容器寻找数据,ResourceLoader通过统一的Resource接口完成。

3.  BeanDefinition载入:将用户Bean表示成IOC容器的内部数据结构-->BeanDefinition。

4.  BeanDefinition注册:IOC容器通过hashmap(beanDefinitionMap)管理。beanName为key,BeanDefinition为value。

IOC容器的注入:

1.  默认为容器启动时对Bean的预实例化。如果指定懒加载,则用户第一次向IOC容器索要bean时触发(getBean方法)。

2.  容器会在缓存map中寻找单例Bean,如果取不到,则去双亲BeanFactory中获取,一直向上获取。

3.  如取不到,则通过createBean创建实例,以及所有依赖的实例。

4.  createBean 不但生成了bean,还实现了bean的预处理(init-method方法)和后置处理器等。spring可以使用JVM的反射来创建bean,也可以使用CGLib来增强字节码创建bean。

转载请注明原文地址: https://www.6miu.com/read-1284.html

最新回复(0)