Spring boot启动和Spring启动

📅 2026/8/25 11:18:53
Spring boot启动和Spring启动
Spring boot启动第一步启动main方法创建 SpringApplication 实例new springApplication()SpringApplication 是启动 Spring Boot 应用的核心类。它负责启动应用的上下文并执行所有必要的初始化步骤。 这里推断应用类型是web还是普通应用设置初始化器监听器我记得推断应用类型是判断类路径中存在servlet 相关类就是web类第二步调用run方法真正启动流程就在这里准备上下文在 run 方法中首先会准备一个 ApplicationContext1加载配置根据 SpringBootApplication 中的设置加载应用的配置文件如 application.properties 或 application.yml系统变量命令行参数将其转化为配置属性最终封装成configureableEnvironment 这一步就是把配置全准备好2执行自动装配通过 EnableAutoConfiguration 注解Spring Boot 会自动装配必要的组件。例如如果存在数据库驱动则自动配置 DataSource。3启动应用上下文启动 ApplicationContext加载配置类componentScan 就是这在执行的。完成 Bean 的初始化和依赖注入。如果是web应用启动tomcat服务器4触发 ApplicationRunner 和 CommandLineRunner如果定义了 ApplicationRunner 或 CommandLineRunner 接口的实现类Spring Boot 会在应用启动后自动调用它们。5发布applicationReadyEvent所有启动流程结束应用进入运行状态准备好接收请求原生IOC启动流程1. 加载配置资源2. 解析为BeanDefinition3. 初始化Bean工厂、执行工厂后置处理器、注册后置处理器4. 实例化单例Bean、依赖注入、生命周期全程只管BeanSpringBoot启动流程1. 初始化SpringApplication准备监听器、初始化器2. 准备运行环境、加载配置文件3. 打印Banner、创建应用上下文4. 执行自动配置大量自动配置类生效5. 刷新IOC容器这里才开始走上面原生IOC全套流程6. 启动内嵌Tomcat7. 执行收尾回调、应用就绪