首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringApplication.run(MyApplication.class, args)运行流程源码分析

通常用于需要对应用程序上下文进行一些程序化初始化web应用程序中。...(对一些配置信息初始化谁先初始化 谁后初始化进行排序) ApplicationListener.class 监听器 由应用程序事件侦听器实现接口。基于标准java.util。...)将上下文初始化器和classLoader 传进去 SpringFactoriesLoader.loadFactoryNames(type, classLoader)); //创建工厂实例,根据获取names...将所有事件广播给所有已注册侦听器,让侦听器忽略它们不感兴趣事件侦听器通常会对传入事件对象执行相应instanceof检查。 默认情况下,在调用线程中调用所有侦听器。...底层实现了很多事件 如刚启动事件初始化事件,启动完事件,启动失败事件等等 当一个springboot应用在启动时候,在某一个时间点,springboot就会产生一个事件通过广播形式将该事件发送给所有的

1.3K10

微服务架构之Spring Boot(二十二)

除了注册侦听器初始化程序之外,在运行开始时但在任何处理之前发送 ApplicationStartingEvent 。 2....如果启动时发生异常,则会发送 ApplicationFailedEvent 。 您经常不需要使用应用程序事件,但知道它们存在可能很方便。在内部,Spring Boot使用事件来处理各种任务。...应用程序事件使用Spring Framework事件发布机制发送。此机制一部分确保在子上下文中发布给侦听器事件也会在任何祖先上下文中发 布给侦听器。...因此,如果您应用程序使用 SpringApplication 实例层次结构,则侦听器可能会收到相同类型应用程序事件多个实例。...为了允许侦听器区分其上下文事件和后代上下文事件,它应该请求注入其应用程序上下文,然后将注入下文事件下文进行比较。

69710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spring Boot - Application Events 发布顺序_ContextRefreshedListener

    * 在此阶段,所有 Bean 都已在上下文中定义,应用程序已准备好处理请求和操作 * * * 我们可以利用 ContextRefreshedEvent 来执行在应用程序上下文完全初始化后需要执行其他设置或初始化任务...接口来创建一个自定义事件侦听器。...* 此侦听器可以在主应用程序中手动注册 * * @param event the event to respond to */ @Override public...(); // 初始化当前上下文生命周期处理器 initLifecycleProcessor(); //首先将刷新操作传播给生命周期处理器 getLifecycleProcessor...null Assert.notNull(event, "Event must not be null"); // 如果事件是ApplicationEvent实例,则直接使用,否则创建一个新

    22010

    SqlAlchemy 2.0 中文文档(二十六)

    事件被调用后,原始异常被重新引发,以便对象构造仍然引发异常。引发实际异常和堆栈跟踪应该存在于sys.exc_info()中。 参数: target – 映射实例。...这意味着当在超上建立侦听器时,新子类也将成为这些事件主题。...调用事件后,原始异常将重新引发,以便对象构造仍然引发异常。应在sys.exc_info()中提供实际异常和堆栈跟踪引发异常。 参数: target – 映射实例。...如果映射包括继承子类,则propagate=True标志是重要,这些子类也会使用此事件侦听器。没有此标志,继承子类将不使用我们事件处理程序。...参数: target – 接收事件对象实例。如果侦听器使用raw=True注册,这将是InstanceState对象。 value – 在调用此事件侦听器之前要返回值。

    27210

    Flowable - 6.7.0 更新说明

    案例定义可以有一个案例重新激活侦听器。可被触发以重新激活历史案例实例,变量上下文等将被重新创建。 添加了一个变量侦听器,以允许BPMN和CMMN模型侦听特定变量更改,并在模型中处理此触发器。...在CMMN引擎中添加对并行触发重复信号和通用事件侦听器支持。 当多实例是自动步骤或自动步骤序列时,添加了异步多实例使用优化标志。...如果设置,引擎将大大降低资源消耗,并删除乐观锁定异常,通常性能更高。 增加了对事件注册表事件同步处理支持。 增加了对DMN 1.3版本模型支持。 添加了对JUEL/后端表达式中方法重载支持。...从任务侦听器引发异常不再包装在FlowableException中。 从任务、案例生命周期和计划项生命周期侦听器引发异常不再包装在FlowableException中。...项目fhadmin.cn 从事件注册表中事件启动流程/案例实例方式发生了更改。它不是异步启动流程/案例,而是同步启动。使用此默认值可以正确处理来自同一主题顺序事件

    1.1K50

    C# 特性 System.ComponentModel 命名空间属性方法大全,System.ComponentModel 命名空间特性

    ValidationAttribute 充当所有验证特性。 ValidationContext 描述执行验证检查下文。...CurrentChangedEventManager 提供 WeakEventManager 实现,以便可以使用“弱事件侦听器”模式附加 CurrentChanged 事件侦听器。...CurrentChangingEventManager 提供 WeakEventManager 实现,以便可以使用“弱事件侦听器”模式附加 CurrentChanging 事件侦听器。...ErrorsChangedEventManager 提供 WeakEventManager 实现,以便可以使用弱事件侦听器模式附加 ErrorsChanged 事件侦听器。...InheritanceAttribute 指示是否已从基继承与此特性关联组件。 此类不能被继承。 InitializationEventAttribute 指定在初始化时引发事件

    4.2K30

    Spring Boot 框架整体启动流程详解

    : 1、创建一个SpringApplication实例,根据指定源primarySources加载实例bean 2、将资源加载器赋值给实例变量(此处为null) 3、将primarySources...实例 8、从堆栈中推断出主应用程序 BootstrapRegistryInitializer:该接口作用是将一些默认组件注册到BootstrapRegistry中,这些组件可以帮助Spring...该接口实现可以在应用程序上下文创建之前注册到SpringApplication实例中,并在应用程序上下文创建之前执行一些初始化操作,例如覆盖应用程序上下文默认bean定义、添加自定义属性源、激活特定...建议实现Ordered接口,或者使用@Order注解 ApplicationListener:该接口实现可以在Spring Boot应用程序中注册到ApplicationContext中,以便在应用程序生命周期内接收和处理特定应用程序事件...8、创建ApplicationContext 9、设置启动期间度量记录 10、准备应用程序上下文 11、刷新应用程序上下文 12、计算启动需要时间 13、如果需要,记录应用程序启动信息

    56330

    flowable 更新说明

    添加了对案例重新激活支持,以支持将历史和已完成案例实例重新激活到正在运行案例实例。案例定义可以有一个案例重新激活侦听器。可被触发以重新激活历史案例实例,变量上下文等将被重新创建。...添加了一个变量侦听器,以允许BPMN和CMMN模型侦听特定变量更改,并在模型中处理该触发器。 在CMMN引擎中添加对并行触发重复信号和通用事件侦听器支持。...当多实例是自动步骤或自动步骤序列时,添加了异步多实例使用优化标志。如果设置,引擎将大幅降低资源消耗,并消除乐观锁定异常,通常性能更高。 增加了对事件注册表事件同步处理支持。...在CMMN引擎中添加了基本CMMN模型验证。 为CMMN引擎添加了基本CDI支持。 从任务侦听器抛出异常不再包装在FlowableException中。...FlowAblePlan和lifecycle中FlowAbleItem异常不再是从生命周期中抛出异常。 改进了运行时和历史流程以及案例实例查询(包括变量)分页。

    74210

    最新流程引擎 flowable 6.7.2 更新说明

    添加了对案例重新激活支持,以支持将历史和已完成案例实例重新激活到正在运行案例实例。案例定义可以有一个案例重新激活侦听器。可被触发以重新激活历史案例实例,变量上下文等将被重新创建。...添加了一个变量侦听器,以允许BPMN和CMMN模型侦听特定变量更改,并在模型中处理该触发器。 在CMMN引擎中添加对并行触发重复信号和通用事件侦听器支持。...当多实例是自动步骤或自动步骤序列时,添加了异步多实例使用优化标志。如果设置,引擎将大幅降低资源消耗,并消除乐观锁定异常,通常性能更高。 增加了对事件注册表事件同步处理支持。...在CMMN引擎中添加了基本CMMN模型验证。 为CMMN引擎添加了基本CDI支持。 从任务侦听器抛出异常不再包装在FlowableException中。...FlowAblePlan和lifecycle中FlowAbleItem异常不再是从生命周期中抛出异常。 改进了运行时和历史流程以及案例实例查询(包括变量)分页。

    1.7K20

    spring容器初始化过程总结_java构造方法初始化

    // 为此上下文初始化事件广播者 initApplicationEventMulticaster(); // 初始化特定上下文子类中其他特殊bean...onRefresh(); // 检查侦听器bean并注册 registerListeners(); // 实例化所有非懒加载剩余单例...} } } 从总体来看,该方法描述初始化过程大概分为三步: 上下文初始化; BeanFactory 初始化事件,Bean及其他配置初始化; 笔者将基于 spring 源码 5.2...相关文章: 深入理解Spring容器初始化(一):上下文初始化; 深入理解Spring容器初始化(二):BeanFactory初始化; 深入理解Spring容器初始化(三):事件及其他配置初始化;...IllegalStateException 异常; 直接创建一个新工厂,然后替换上下文中原有的工厂; 1、刷新工厂 可重复刷新下文 不允许重复刷新容器包括 GenericApplicationContext

    55320

    spring-boot-2.0.3不一样系列之源码篇 - SpringApplicationrun方法(一)之SpringApplicationRunListener,绝对有值得你看地方

    一周之中可能会插入其他内容博文,可能和springboot启动源码有关,也可能和启动源码无关。   路漫漫其修远兮,吾将上下而求索!   ...:当事件发生时,负责对事件处理       事件环境:整个事件所处下文,对整个事件提供支持 SpringApplicationRunListener   run方法源代码如下 /** * Run...,我们先来看看ConfigurableApplicationContext,从名字来看就是:合适应用上下文,会根据class路径下初始化合适应用上下文,比如是普通spring应用(非web应用...这次就是从SpringFactoriesLoadercache中取SpringApplicationRunListener类型(全限定名),然后实例化后返回。...ApplicationListeners集合,非匹配侦听器会被提前排除;允许根据缓存匹配结果来返回。

    87220

    SpringBoot运行流程源码分析:run方法流程及监听器

    SpringBoot运行流程源码分析 上一章中我们分析了 SpringApplication 实例源代码,在此过程中完成了基本配置文件加载和实例化。....创建并初始化容器。 监听器发送通知。 当然,除了核心操作,run 方法运行过程中还涉及启动时长统计、异常报告、启动日志、异常处理等辅助操作。...在构造方法中初始化了该类 3 个成员变量。 -application : 型为 SpringApplication ,是当前运行 SpringApplication 实例。...:第一,遍历 application 所有监听器实现,如果该实现还实现了 ApplicationContextAware 接口,则将上下文信息设置到该监听器内;第二,将 application 中监听器实现全部添加到上下文中...这是因为只有到了 contextL oaded 方法之后,上下文才算初始化完成,才可通过它 publishEvent 方法来进行事件发布。

    52720

    spring容器初始化过程中出现异常_spring容器什么时候启动

    onRefresh(); // 检查侦听器bean并注册 registerListeners(); // 实例化所有非懒加载剩余单例...本文是其中第三篇文章,将介绍上下文事件,Bean及其他配置初始化。...相关文章: 深入理解Spring容器初始化(一):上下文初始化; 深入理解Spring容器初始化(二):BeanFactory初始化; 深入理解Spring容器初始化(三):事件及其他配置初始化;...中注册一个SimpleApplicationEventMulticaster 实例作为当前上下文事件广播器。...这一步代码不动,实际上逻辑也很简单: 向事件广播器注册已经被注册下文监听器; 向事件广播器注册还没有被实例监听器 BeanName; 发布一些早期事件; protected void registerListeners

    72310

    掌握 Spring 之事件处理

    ,内置标准事件有 5 种: 当 Spring 容器处于初始化或者刷新阶段时就会触发,事实是ApplicationContext#refresh()方法被调用时,此时容器已经初始化完毕。...实例。...,可能会由于需求想要指定侦听器执行顺序,这一点 Spring 也为我们考虑到了,只要使用 @Order注解声明监听或者监听方法即可,根据 @Order value 大小来确定执行顺序,越小越优先执行...首先就要介绍 Spring 中事件机制对象: Event :所需要触发具体事件对象,通常扩展 ApplicationEvent 实现。...在应用资源文件夹新建文件 META-INF/spring.factories,并将 org.springframework.context.ApplicationListener 作为键,指定需要注册侦听器

    1.2K40

    前端开发必备之Chrome开发者工具(上篇)

    本文介绍 Chrome 开发者工具基于 Chrome 65版本,如果你 Chrome 开发者工具没有下文提到那些内容,请检查下 Chrome 版本 简介 Chrome 开发者工具是一套内置于 Google...事件侦听器 ?...启用 Ancestors 复选框时查看祖先实体事件侦听器,即除了当前选定节点事件侦听器外,还会显示其祖先实体事件侦听器 启用 Framework listeners 复选框时查看框架侦听器,DevTools...事件监听器断点 当想要暂停事件侦听器代码时,使用事件侦听器断点 设置事件监听器断点: 点击 Sources 选项卡。 展开 “Event Listener Breakpoints” 窗格。...异常断点 当您想暂停引发捕获或未捕获异常代码行时,使用异常断点 设置异常断点: 点击 Sources 选项卡。 点击暂停 ? ,启用后变成蓝色。

    8.3K111

    听GPT 讲Istio源代码--pilot(6)

    tcpGrpcAccessLogFromTelemetry:用于构建基于gRPCTCP访问日志,用于将TCP层遥测事件发送到远程服务器。...httpGrpcAccessLogFromTelemetry:用于构建基于gRPCHTTP访问日志,用于将HTTP层遥测事件发送到远程服务器。...openTelemetryLog:用于创建OpenTelemetry access log实例,它是一种将遥测事件发送到OpenTelemetry后端抽象。...这些变量和函数目的是为了配置和处理遥测日志,包括记录访问日志、构建各种类型访问日志配置,以及将遥测事件发送到远程服务器或本地文件等。...InitContext:初始化下文。 createNewContext:创建新下文。 updateContext:更新上下文。 initServiceRegistry:初始化服务注册表。

    22840
    领券