springboot项目启动过程
时间: 2024-08-15 20:01:37 浏览: 63
springBoot项目启动类启动无法访问的解决方法
Spring Boot项目启动过程主要涉及Spring应用程序上下文(ApplicationContext)的创建,以及Spring Boot自动配置机制的应用。以下是Spring Boot项目启动过程的一个概述:
1. **初始化SpringApplication实例**:首先,会创建一个SpringApplication对象,它是启动Spring Boot应用的入口。这个对象负责配置应用类型,比如它是普通的Spring应用还是Web应用,并加载配置文件。
2. **运行run方法**:接着,调用SpringApplication的run方法开始启动应用。这个方法会做很多工作,如初始化Spring应用上下文,加载配置属性等。
3. **创建Spring应用上下文**:在run方法中,会创建一个Spring应用上下文,这是一个用于管理Spring Beans的容器。根据应用类型的不同,可能会创建AnnotationConfigApplicationContext、AnnotationConfigServletWebServerApplicationContext等不同类型的上下文。
4. **执行Bean定义加载**:Spring应用上下文创建后,会加载所有的Bean定义。这包括扫描指定的包路径下的类,并根据类上的注解(比如@Component, @Service, @Repository, @Controller等)创建相应的Bean。
5. **应用自动配置**:Spring Boot的自动配置功能会根据应用中已经存在的Bean,以及在类路径中检测到的jar包等条件,自动配置Spring应用。这个过程中会利用spring.factories文件中列出的自动配置类。
6. **刷新应用上下文**:加载所有的Bean定义和自动配置之后,应用上下文会进入“刷新”状态,这时会初始化所有的单例Bean,执行Bean的生命周期回调方法等。
7. **启动内嵌的Web服务器**:对于Web应用,Spring Boot通常会启动一个内嵌的Web服务器,比如Tomcat、Jetty或Undertow。这是通过Web应用的特定ApplicationContext实现完成的,如AnnotationConfigServletWebServerApplicationContext。
8. **等待请求**:一旦Web服务器启动完成,应用就会进入等待接收HTTP请求的状态。
启动过程中,Spring Boot还会处理各种启动相关的回调和监听器,比如ApplicationContextInitializer和ApplicationListener等。
阅读全文