关于 启动事件 配置

ApplicationStartingEvent

触发时机:在 Spring Boot 应用程序开始启动时,在任何处理(除了监听器和初始化器注册)之前触发。
用途:这是应用启动的最早阶段,通常用于执行一些非常早期的初始化操作,比如记录启动日志、加载全局配置等。

ApplicationEnvironmentPreparedEvent

触发时机:在 Spring 应用程序上下文创建之前,当 Environment (应用程序环境配置,包含属性源、配置文件等信息)准备好之后触发。
用途:可以在这个阶段对 Environment 进行修改,例如添加额外的属性源、修改配置属性等。

ApplicationContextInitializedEvent

触发时机:在 ApplicationContext (Spring 应用程序上下文)被创建并初始化之后,但在加载任何 bean 定义之前触发。
用途:可以在这个阶段对 ApplicationContext 进行一些自定义配置,比如注册自定义的 BeanFactoryPostProcessor 或 BeanPostProcessor。

ApplicationPreparedEvent

触发时机:在 ApplicationContext 已经加载了所有的 bean 定义,但在刷新(refresh)之前触发。
用途:可以在这个阶段对 ApplicationContext 中的 bean 进行最后的修改或检查,例如修改 bean 的定义、添加额外的 bean 等。

ApplicationStartedEvent

触发时机:在 ApplicationContext 刷新(refresh)完成之后,但在 CommandLineRunner 和 ApplicationRunner 执行之前触发。
用途:可以在这个阶段执行一些应用程序启动后但在业务逻辑执行之前的操作,比如初始化一些外部服务的连接、启动后台任务等。

ApplicationReadyEvent

触发时机:在 CommandLineRunner 和 ApplicationRunner 执行完成之后触发,表示应用程序已经准备好接收请求。
用途:可以在这个阶段执行一些通知操作,比如向监控系统发送应用启动成功的消息、打印启动完成的日志等。

ApplicationFailedEvent

触发时机:当应用程序启动过程中发生异常导致启动失败时触发。
用途:可以在这个阶段执行一些异常处理和清理操作,比如记录错误日志、关闭已经打开的资源等。

在主函数中这样写

 public static void main(String[] args) {

        SpringApplication application = new SpringApplication(StockPool2Application.class);
       
        application.addListeners(new ApplicationListener<ApplicationStartedEvent>() {
            @Override
            public void onApplicationEvent(ApplicationStartedEvent event) {
                logger.info("程序正常启动");
            }
        });
        application.run(args);
    }

配置一个 监听类

@Component
public class CustomApplicationListener implements  ApplicationListener<ApplicationReadyEvent> {

   
    @Override
    public void onApplicationEvent(ApplicationReadyEvent event) {
        System.out.println("ApplicationReadyEvent: Application is ready
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容