Spring
Spring框架底层源码-Bean的生命周期:要想让一个类成为Bean,首先得让类成为Bean定义----类上带有或者包含有@Component的注解是可以成为Bean定义的或者Bean标签,这种事Xml的方式,这里我们不讲述因为过时了-----首先跟据包路径扫描,所有的类都会被编译成Class对象,这里有Resource对象存储,该对象是一个数组。--------接着遍历每个Class对象,带有或者包含有@Component注解的类会被添加到Bean定义集合去,添加之前会进行一次过滤,虽然该类上带有注解,但是如果是抽象类或者是接口则不能生成Bean定义--------遍历Bean定义集合,给每个Bean定义设置属性比如Bean定义的作用域,单例还是原型的,这里Bean定义有一个属性 类型是Object,这个属性这里存储的是该类的类名,解析完Bean定义之后会添加到Bean定义Map中去------遍历Bean定义Map,首先合并Bean定义,因为Bean定义可能有父亲,自己没有的属性可以继承父亲的,合并好的Bean定义会添加到合并的那个Map中去,创建Bean的时候会从合并的那个Map中去拿-------遍历合并好的Bean定义,然后跟据Bean定义创建Bean,这里有两种情况一个是FactoryBean,另一个则不是,如果是FactoryBean,Bean的返回类型则是getObject返回的类型,如果不是则直接调用CreatBean方法创建Bean如果Bean是单例的则放入单例池。如果是原型的则不放入,下次用到该Bean时重新创建---------不管是创建FactoryBean还是普通的单例Bean,都会调用creatbean方法,这里算是正式进入Bean的生命周期