首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从源代码讨论SpringApplication的run方法是否会执行两次

SpringApplication的run方法不会执行两次。该方法是Spring Boot应用程序的入口点,用于启动应用程序并执行必要的初始化和配置。当调用run方法时,它会创建一个Spring应用程序上下文,并执行一系列的步骤,包括加载配置、初始化Bean、启动服务器等。在整个过程中,run方法只会被执行一次。

具体来说,SpringApplication的run方法会执行以下步骤:

  1. 创建一个空的Spring应用程序上下文(ApplicationContext)。
  2. 设置应用程序的配置属性,如配置文件路径、激活的配置文件等。
  3. 执行SpringApplicationRunListeners的starting方法,通知所有注册的监听器应用程序即将启动。
  4. 根据配置属性加载应用程序的配置,包括配置文件、注解配置等。
  5. 执行SpringApplicationRunListeners的environmentPrepared方法,通知所有注册的监听器应用程序的环境已准备好。
  6. 创建并刷新应用程序上下文,加载所有的Bean定义并初始化Bean。
  7. 执行SpringApplicationRunListeners的contextPrepared方法,通知所有注册的监听器应用程序上下文已准备好。
  8. 调用ApplicationContext的refresh方法,完成Bean的初始化和依赖注入。
  9. 执行SpringApplicationRunListeners的contextLoaded方法,通知所有注册的监听器应用程序上下文已加载完成。
  10. 启动应用程序的服务器,如Tomcat、Jetty等。
  11. 执行SpringApplicationRunListeners的started方法,通知所有注册的监听器应用程序已启动。
  12. 执行应用程序的逻辑,处理请求和响应。
  13. 执行SpringApplicationRunListeners的running方法,通知所有注册的监听器应用程序正在运行。
  14. 当应用程序关闭时,执行一系列的清理操作,包括关闭服务器、销毁Bean等。
  15. 执行SpringApplicationRunListeners的stopped方法,通知所有注册的监听器应用程序已停止。

总结起来,SpringApplication的run方法只会被执行一次,并且它是Spring Boot应用程序的入口点,负责启动应用程序并执行必要的初始化和配置。在整个过程中,SpringApplication会创建应用程序上下文、加载配置、初始化Bean、启动服务器等,但不会执行两次。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

8分44秒

金三银四面试季之仨面试题解析 Thread start 方法与 run 方法

2.8K
领券