Spring context refresh

1.prepareRefresh:Prepare this context for refreshing.
初始化context的一些属性,状态
2.beanfactory 的获取和属性的设置
3.postProcessBeanFactory 让子类去处理beanFactory
4.invokeBeanFactoryPostProcessors:Invoke factory processors registered as beans in the context.
调用工程上下文,在beanFactory 创建好的时候去执行。
5.registerBeanPostProcessors 注册beanPostProcessors 在beanFactory,
beanPostProcessors 是在bean初始化前和初始化之后调用的类,对一种类型的bean加强做处理
6.initMessageSource messageSource的构建
7.initApplicationEventMulticaster 事件转发器
8.onRefresh:Initialize other special beans in specific context subclasses. 初始化一些特殊的类。
这里Spring boot 其实就是在子类上对这个方法进行编写的。
9.registerListeners 注册监听器
10.finishBeanFactoryInitialization :Instantiate all remaining (non-lazy-init) singletons.
11.finishRefresh 完成Refresh

这里比较关键点:
<1 Context 的Listener,监听时间的发生,从批量处理。
<2 beanPostProcesser ,这是对类的处理
❤️ onRefresh 函数子类的自定义,web上的一些应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring中,context.refresh()方法的运行流程一般可以分为以下几个步骤: 1. 调用refresh()方法,刷新应用上下文,启动Spring容器。 2. 初始化BeanFactory,并准备好BeanFactory所需的各种资源。这包括读取配置文件、解析XML、注解等信息,并将其转换为Spring内部的BeanDefinition对象。 3. 注册BeanPostProcessor,这是Spring中处理Bean的拦截器接口,可以在Bean初始化前后进行各种处理。 4. 执行BeanFactoryPostProcessor,这是Spring中处理BeanFactory的拦截器接口,可以在BeanFactory加载BeanDefinition后,对其进行修改和处理。 5. 注册BeanPostProcessor,这是Spring中处理Bean的拦截器接口,可以在Bean初始化前后进行各种处理。 6. 注册监听器,这是Spring中的事件机制,可以监听容器中各种事件的发生。 7. 实例化所有的singleton bean,这是Spring容器启动时的关键步骤,容器会根据BeanDefinition中定义的信息,通过反射机制创建相应的Bean实例,并将其放入BeanFactory中。 8. 注册所有的scope bean,这是指非singleton类型的Bean,如prototype、request等。 9. 发布容器启动事件,通知所有监听器容器已经启动。 10. 返回ApplicationContext实例,完成容器的启动过程。 需要注意的是,以上流程中的具体细节会因为具体的配置和环境而有所不同,但是整体的流程是类似的。同时,Spring容器的启动过程也是非常复杂的,需要对各种细节进行处理,因此需要对Spring的内部机制有一定的了解,才能更好地理解和使用Spring
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值