1、通过AnnotationConfigApplicationContext或者ClassPathXmlApplicationContext调用,
2、通过BeanDefinitionMap中,BeanDefinitionReader读取,BeanDefinitionSacnner扫描,BeanDefinitionRegistr注册(可以通过BeanFactoryPostProcessor修改BeanDefinition,BeanDefinitionRegistryPostProcesor注册DeanDefinition)
3、调用BeanFactory,getBean方法进行生产Bean
4、IOC容器进行Bean的创建,实例化==>填充属性==>解析注解==>***BeanPostProcessor=>实例化前=***BeanPostProcessor=***Aware=>实例化=**Aware=>实例化后==>Aop(CGLB和JDK动态代理)==>存入一级缓存Map(单例池)==>使用==>销毁
其他:初始化后的前面步骤,并调用9次BeanPostProcessor扩展点,在初始化过程中会调用Aware扩展点。BeanNameAware,BeanClassLoaderAware,BeanFactoryAware,EnvironmentAware's,EmbeddedValueResolverAware's,ResourceLoaderAware's,ApplicationEventPublisherAware's,MessageSourceAware's,ApplicationContextAware's,ServletContextAware's
springbean生命周期源码版本
最新推荐文章于 2024-10-08 21:30:52 发布