一、Spring框架的学习杂谈
一、Spring公司的有很多项目,但是我们平常所说的Spring框架指的是Springframework,可以查看官网来具体查看
添加链接描述
二、Bean和对象的区别:Bean一定是对象,而对象不一定是Bean,从对象到Bean的过程就是Bean的生命周期;
三、SpringIoc容器的初始化和依赖注入的过程,Bean的定义和初始化在SpringIoC容器中分为差两个步骤:1)先定义2)初始化和依赖注入
Bean的定义分成三步
(1)Resorce定位,这步是SpringIoC容器根据开发者的配置,进行资源定位,在Spring的开发中,通过XML和注解的都是十分常见的方式,定位的内容是由开发者提供的
(2)BeanDefinition的载入,这个时候只是将Resource定位到的信息,保存到Bean定义中(BeanDefinition)中,此时并不会创建Bean实例;
(3)BeanDefinition的注册,这个时候就是将BeanDefinition的信息发布到SpringIoC容器中,注意这个时候仍旧没有对应的Bean实例被创建。
做完这三步,Bean就在容器就被定义了,而没有被初始化,更没有完成依赖注入,也就是没有其配置的资源给Bean,那么它还不能完全使用。对于初始化和依赖注入,SpringBean还有一个配置选项-lazy-init,其含义就是是否初始化SpringBean,在没有配置的情况下默认是default,实际值为false,也就是SpringIoC默认会自动初始化Bean。如果将其设置成true,那么只有我们使用SpringIoC容器的getBean方法获取它时,它才会进行Bean的初始化,完成依赖注入。
四、Spring中的两个核心类
1、DefaultListableBeanFactory
类图
2、XmlBeanDefinitionReader
Spring配置文件读取相关类图