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

本文目录

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 学习笔记:请求数据的解析绑定与返回数据的处理》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值