Spring Bean实例化过程(1)

Spring容器启动和初始化过程实际上可以分为两个阶段,第一个阶段是容器的初始化,包括容器的创建,bean配置文件读取,解析和BeanDefinition的生成及注册。第二个阶段是bean的实例化,从beanDefinition到bean实例的生成,包括aop的切入等。

ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
concurrentTemplate = (AbstractConcurrentTemplate) context.getBean("tairConcurrentTemplate");
上面简单两行,已经包括了Spring的初始化和实例化过程。


Spring中Bean的实例化的触发时机包括主要两类,一步是在初始化结束后,一个是getBean触发时。

bean的实例化过程实际上在AbstractApplicationContext.refresh()时就开始了,具体的入口为:refresh->finishBeanFactoryInitialization->beanFactory.preInstantiateSingletons(),preInstantiateSingletons的实现在DefaultListableBeanFactory类中。

DefaultListableBeanFactory中preInstantiateSingletons的具体逻辑为:

public void preInstantiateSingletons() throws BeansException {
     
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值