Springboot Application生命周期事件

简述

SpringApplication的生命周期事件一共有七个,它们发生的顺序如下:

  • ApplicationStartingEvent
  • ApplicationEnvironmentPreparedEvent
  • ApplicationContextInitializedEvent
  • ApplicationPreparedEvent
  • ApplicationStartedEvent
  • ApplicationReadyEvent
  • ApplicationFailedEvent

2、具体讲解

2.1 APPLICATIONSTARTINGEVENT

这个事件是在一个SpringApplication对象的初始化和监听器的注册之后,抛出的。

2.2 APPLICATIONENVIRONMENTPREPAREDEVENT

这个事件在Environment对象创建之后,Context对象创建之前,抛出。

2.3 APPLICATIONCONTEXTINITIALIZEDEVENT

这个事件在ApplicationContext对象被初始化后抛出,抛出的时候,所有bean的定义还没被加载。

2.4 APPLICATIONPREPAREDEVENT

这个事件在bean定义被加载之后,Context对象刷新之前抛出。

2.5 APPLICATIONSTARTEDEVENT

这个事件在Context对象刷新之后,应用启动器被调用之前抛出。

2.6 APPLICATIONREADYEVENT

这个事件在应用启动器被调用之后抛出,这个代表着应用已经被正常的启动,可以接收请求了。

2.7 APPLICATIONFAILEDEVENT

这个事件只有在应用启动出现异常,无法正常启动时才会抛出。

3、编写代码,验证结论

3.1 编写事件监听器

我在这里只写一个,其他六个的类似:

public class ApplicationContextInitializedEventListener implements ApplicationListener<ApplicationContextInitializedEvent> {
    @Override
    public void onApplicationEvent(ApplicationContextInitializedEvent applicationContextInitializedEvent) {
        System.out.println("ApplicationContextInitializedEvent");
    }
}

3.2 添加监听器

启动类如下:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.test.listener.*;

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication a  = new SpringApplication(App.class);
        //添加监听器
        a.addListeners(new ApplicationContextInitializedEventListener(), new ApplicationEnvironmentPreparedEventListener(),
                new ApplicationFailedEventListener(), new ApplicationPreparedEventListener(), new ApplicationReadyEventListener(),
                new ApplicationStartedEventListener(), new ApplicationStartingEventListener());
        a.run(args);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot 的生命周期主要包括以下几个阶段: 1. 启动:当应用启动时,Spring Boot 会读取配置文件、执行自动配置类、加载应用程序上下文。 2. 运行:当应用程序上下文加载完毕后,应用程序将开始运行,可以处理请求和提供服务。 3. 关闭:当应用程序停止运行时,Spring Boot 会关闭应用程序上下文并销毁所有的单例 bean。 在 Spring Boot 生命周期中,你可以定义自己的生命周期事件,例如在启动之前或关闭之后执行特定的操作。这样,你就可以在应用生命周期的不同阶段执行不同的任务,更好地管理你的应用程序。 ### 回答2: Spring Boot的生命周期可以分为以下几个阶段: 1. 配置阶段:在Spring Boot应用程序启动之前,会根据配置文件以及默认配置,加载并解析各种配置信息,比如数据库连接信息、日志配置等。 2. 初始化阶段:在配置阶段完成后,Spring Boot会根据配置信息,初始化各种组件和Bean对象,包括加载并注册各种Spring组件、创建数据库连接池等。 3. 运行阶段:初始化完成后,Spring Boot会创建并启动内嵌的Tomcat等Web容器,接收和处理用户的请求,并根据配置信息调用相应的Spring组件处理请求。 4. 销毁阶段:当应用程序关闭或重启时,Spring Boot会按照一定的顺序销毁各种组件和Bean对象,释放资源,关闭数据库连接池等。 在整个生命周期中,Spring Boot还提供了一些其他的特性和功能,比如自动配置、热部署、监控等,以提高开发效率和运行性能。同时,Spring Boot还能通过各种插件和扩展点,实现对不同功能的扩展和定制。 总的来说,Spring Boot的生命周期包括配置阶段、初始化阶段、运行阶段和销毁阶段,每个阶段都有相应的功能和操作,在开发和运行过程中发挥作用。通过了解和掌握Spring Boot的生命周期,可以更好地理解和使用Spring Boot框架,提高开发效率和应用程序的性能。 ### 回答3: Spring Boot的生命周期是指在应用程序的整个启动过程中,Spring Boot框架执行的一系列关键步骤。 首先,Spring Boot应用程序的生命周期始于应用程序的启动,在启动过程中,Spring Boot会加载应用程序的配置文件,例如application.properties或application.yml,并根据这些配置来进行初始化。 接下来,Spring Boot会创建并启动一个内嵌的Web服务器,例如Tomcat或Undertow,以便能够处理HTTP请求。同时,Spring Boot还会自动配置一些基本的Web相关的机制,例如DispatcherServlet、ErrorController等。 随后,在启动过程中,Spring Boot会根据应用程序的依赖关系,自动装配和初始化Spring容器。Spring Boot会搜索并加载应用程序中的所有基于注解的配置类,并根据这些配置类中的注解来进行Bean的注册和依赖注入。 接着,Spring Boot会执行所有已注册Bean的初始化过程,包括调用相应Bean的构造函数、设置属性值、注册事件监听器等。同时,Spring Boot也提供了一些扩展机制,例如ApplicationRunner和CommandLineRunner接口,可以在应用程序启动后执行一些特定的操作。 最后,在应用程序启动完成后,Spring Boot会进入运行状态,开始处理用户的请求。用户可以通过编写Controller和相关的业务逻辑来处理请求,并可以使用Spring Boot提供的注解和工具类来简化开发。 总之,Spring Boot的生命周期包括加载配置、启动内嵌Web服务器、自动装配Spring容器、初始化Bean以及处理用户请求等关键步骤。这一系列步骤使得Spring Boot可以快速方便地构建、配置和部署应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值