springboot的启动流程是怎样的呢
时间: 2023-10-25 11:33:48 浏览: 43
1. 加载SpringBoot配置文件和依赖的jar包
2. 创建SpringApplication实例
3. 解析命令行参数和配置文件,将其封装成SpringApplication对象的环境变量
4. 根据环境变量创建ApplicationContext对象
5. 判断当前是否为Web应用,如果是则创建EmbeddedWebApplicationContext对象,否则创建AnnotationConfigApplicationContext对象
6. 注册BeanPostProcessor、ApplicationListener、CommandLineRunner等组件
7. 加载自定义的配置文件、Bean等
8. 执行ApplicationContext的refresh()方法,完成Bean的初始化、注入、AOP等操作
9. 如果是Web应用,则创建EmbeddedServletContainer并启动
10. 应用启动成功,执行ApplicationRunner和CommandLineRunner接口的run()方法
11. 应用启动失败,执行ApplicationFailedEvent事件的监听器
相关问题
springboot启动流程
好的,关于 SpringBoot 的启动流程,一般可以概括为以下几个步骤:
1. 加载 SpringBoot 启动类
在启动应用时,会先找到 SpringBoot 启动类,它通常是一个包含了 `main` 方法的 Java 类,通过该类的 `main` 方法启动应用。
2. 执行 SpringBoot 启动类的 `main` 方法
执行 `main` 方法时,会创建一个 Spring 应用上下文(ApplicationContext),并完成一系列初始化工作,包括加载配置等。
3. 根据配置创建 Spring 容器
SpringBoot 会根据配置文件(application.properties 或 application.yml)中的配置,创建一个 Spring 容器。在创建容器时,会自动扫描并加载所有符合条件的 Bean,包括各种配置类、控制器、过滤器等。
4. 启动 Web 服务器
当 Spring 容器创建完成后,会启动 Web 服务器,这里以 Tomcat 为例。SpringBoot 内置了 Tomcat,因此无需单独安装,直接启动即可。
5. 注册 Servlet、Filter、Listener 等组件
在启动 Web 服务器后,会将 Servlet、Filter、Listener 等组件注册到 Web 容器中,从而使我们的 Web 应用可以响应用户的请求。
6. 启动完成
当所有组件都注册完成后,SpringBoot 启动过程就基本完成了。此时,我们的 Web 应用已经可以正常接收并处理用户的请求了。
以上就是 SpringBoot 的启动流程,希望对你有所帮助。
SPringBoot启动流程
SpringBoot的启动流程可以分为以下几个步骤:
1. 确定应用程序类型。在启动SpringBoot时,首先需要确定应用程序的类型。这可以通过设置启动类的注解来实现,比如使用@SpringBootApplication注解。
2. 创建SpringBoot应用程序上下文。在确定应用程序类型后,SpringBoot会创建一个应用程序上下文(ApplicationContext)对象。这个上下文对象是整个应用程序的核心,包含了所有的配置信息和Bean定义。
3. 加载配置文件。SpringBoot会自动加载并解析应用程序的配置文件,包括application.properties或application.yml等。这些配置文件可以用来配置应用程序的各种属性,如数据库连接、端口号等。
4. 扫描和注册Bean。SpringBoot会扫描应用程序中的所有类,并将符合条件的类注册为Bean。这可以通过@ComponentScan注解来实现,它会扫描指定包及其子包中的所有类。
5. 执行Bean的初始化和依赖注入。在注册Bean后,SpringBoot会执行Bean的初始化操作,并将其依赖的其他Bean注入到其中。这可以通过使用@Autowired注解来实现。
6. 启动应用程序。在完成上述步骤后,SpringBoot会启动应用程序。这将导致应用程序开始监听指定的端口,并处理来自客户端的请求。
总而言之,SpringBoot的启动流程包括确定应用程序类型、创建应用程序上下文、加载配置文件、扫描和注册Bean、执行Bean的初始化和依赖注入,最后启动应用程序。 <span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [9千字长文带你了解SpringBoot启动过程--史上最详细 SpringBoot启动流程-图文并茂](https://blog.csdn.net/weixin_44947701/article/details/124055713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]