Spring Boot 学习笔记:启动过程方法

  • Post author:
  • Post category:其他



本文目录


1 Servlet 启动过程方法


2 Bean 初始化过程方法


3 Spring Boot 启动过程事件


4 Spring Boot 启动完成方法


5 整体执行顺序


6 相关文章


1 Servlet 启动过程方法

/**
 * 示例
 *
 * @author cuixianlong
 */
@Component
public class DemoBean implements ServletContextListener {

  /**
   * 当Servlet容器启动Web应用时,会执行contextInitialized()方法。
   */
  @Override
  public void contextInitialized(ServletContextEvent servletContextEvent) {
    // 自定义初始化操作
  }

  /**
   * 当Servlet容器终止Web应用时,会执行contextDestroyed()方法。
   */
  @Override
  public void contextDestroyed(ServletContextEvent servletContextEvent) {
    // 自定义销毁操作
  }
}

2 Bean 初始化过程方法

/**
 * 示例
 *
 * @author cuixianlong
 */
@Component
public class DemoBean {

  /**
   * 当Bean对象初始化完成后,会执行init()方法,常用于执行一些自定义的初始化操作。
   */
  @PostConstruct
  private void init() {
    // 初始化操作
  }

  /**
   * 在Bean对象被销毁前,会执行destroy()方法,常用于处理或释放一些资源。
   */
  @PreDestroy
  private void destroy() {
    // 销毁操作
  }
}

3 Spring Boot 启动过程事件

/**
 * 示例
 *
 * @author cuixianlong
 */
@Component
public class DemoBean implements ApplicationListener<ApplicationEvent> {

  /**
   * 在Spring Boot启动过程中,会在不同阶段发布不同的事件,根据事件类型,可以在不同时机执行相应操作。
   */
  @Override
  public void onApplicationEvent(ApplicationEvent event) {

    /*
     * ApplicationContext 初始化完成 或 刷新完成
     */
    if (event instanceof ContextRefreshedEvent) {
      // 自定义操作
      return;
    }

    /*
     * Enviroment 准备完成
     * Bean Definition 加载完成
     * SpringApplication 启动完成
     * 开始接收和处理服务请求
     */
    if (event instanceof ApplicationReadyEvent) {
      // 自定义操作
      return;
    }

    /*
     * SpringApplication 启动失败
     */
    if (event instanceof ApplicationFailedEvent) {
      // 自定义操作
      return;
    }
  }
}

4 Spring Boot 启动完成方法

/**
 * 示例
 *
 * @author cuixianlong
 */
@Component
@Order(1)
public class DemoBean implements CommandLineRunner {

  /**
   * Spring已完成启动过程(Bean已完全初始化并注入完成)
   *
   * @param args 来自main方法参数args
   */
  @Override
  public void run(String... args) throws Exception {
    // 自定义操作
  }
}

5 整体执行顺序

<!-- 启动过程 -->

ServletContextListener.contextInitialized [Servlet启动阶段]

Bean.@PostConstruct [初始化Bean阶段]

ApplicationListener.ContextRefreshedEvent

[服务启动:开始处理服务请求]

CommandLineRunner.run

ApplicationListener.ApplicationReadyEvent



<!-- 停止过程 -->

[服务停止]

Bean.@PreDestroy [注销Bean阶段]

ServletContextListener.contextDestroyed [Servlet注销阶段]

6 相关文章


《Spring Boot 学习笔记:图解 Spring MVC 启动顺序》


《Spring Boot 学习笔记:常见注解》


《Spring Boot 学习笔记:以JSON格式返回对象》


《Spring Boot 学习笔记:Schedule》


《Spring Boot 学习笔记:MongoTemplate 移除 _class 字段》


《Spring Boot 学习笔记:请求数据的解析绑定与返回数据的处理》



版权声明:本文为cuixianlong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。