先纠正一下,绝大部分网上说的bean生命周期,说对也对,说错也错。
Why?
其实我看到spring-bean的生命周期,有四种。而这种bean走的生命周期有些是一样的,有一些是不一样的,所有不能一概而论。
第一种
Tips–[不会进行DI,主要这里进行DI,没啥太大的意义],这里面会把DI开关置为true,也就是DI的第一个条件满足了,第二个条件是DI
的beanpostprocessor是否在spring容器了
坐标–invokeBeanFactoryPostProcessors(beanFactory);
BeanDefinitionRegistryPostProcessor与BeanFactoryPostProcessor
第二种
Tips–[可能会进行DI,也可能不进行DI,也可能会被aop代理,也可能不会,不过一般BeanPostProcessor是不需要aop去处理的,因为BeanPostProcessor的aop意义不大]
坐标–registerBeanPostProcessors(beanFactory);
BeanPostProcessor
第三种[不一定会有,就看你是否引入了aop]
Tips–[会进行DI,可以被aop代理了]
会进行@AspectJ的bean的getBean动作
第四种
就看网上的就好了,这个讲烂了了。。。不过仔细程度不一样了,其实还有很多的,我只是抛一个问题,一步一步debug就可以找到了,只能说网上大部分不是那么全的。
总结
前面给后面打铺垫,后面的bean生命周期会越来越完善,处于前面的说到底不需要那么完整的bean生命周期