说明: 该接口是SpringApplication的run方法的侦听器。 SpringApplicationRunListener通过SpringFactoriesLoader加载并且应该声明一个public构造函数,该构造函数应该接收两个参数,一个是SpringApplication实例一个是String[]数组,将为每次运行创建一个新的SpringApplicationRunListener实例。
功能: 为run方法提供了各个运行阶段的监听事件处理功能。
该接口中的方法有:
//在run方法首次启动时立即调用。可以用于非常早期的初始化。
default void starting(ConfigurableBootstrapContext bootstrapContext) {
}
// 在准备好environment后但在创建ApplicationContext之前调用。
default void environmentPrepared(ConfigurableBootstrapContext bootstrapContext,
ConfigurableEnvironment environment) {
}
// 在创建和准备ApplicationContext后,但在加载sources之前调用。
default void contextPrepared(ConfigurableApplicationContext context) {
}
// 在加载ApplicationContext后但在刷新之前调用。
default void contextLoaded(ConfigurableApplicationContext context) {
}
//上下文已刷新,应用程序已启动,但尚未调用CommandLineRunners和ApplicationRunners。
default void started(ConfigurableApplicationContext context, Duration timeTaken) {
started(context);
}
//上下文已刷新,应用程序已启动,但尚未调用CommandLineRunners和ApplicationRunners。
// 注意自2.6.0以来已弃用,在2.8.0中删除,交付给started(ConfigurableApplicationContext context, Duration timeTaken)方法
@Deprecated
default void started(ConfigurableApplicationContext context) {
}
// 在run方法完成之前立即调用,此时应用程序上下文已刷新,并且所有CommandLineRunners和ApplicationRunners都已调用。
default void ready(ConfigurableApplicationContext context, Duration timeTaken) {
running(context);
}
//在run方法完成之前立即调用,此时应用程序上下文已刷新,并且所有CommandLineRunners和ApplicationRunners都已调用。
//注意自2.6.0以来已弃用,在2.8.0中删除,交付给ready(ConfigurableApplicationContext context, Duration timeTaken)
@Deprecated
default void running(ConfigurableApplicationContext context) {
}
//在运行应用程序时发生故障时调用。
default void failed(ConfigurableApplicationContext context, Throwable exception) {
}