SpringBoot运行流程及基本用法

本文详细解析了SpringBoot的运行流程,包括pom.xml的结构和@SpringBootApplication注解的作用。SpringBoot简化了配置,自动配置Spring,提供生产就绪功能。此外,还介绍了SpringBoot的基本用法,如为属性动态赋值,使用YAML和properties文件,并讲解了如何整合Mybatis及其测试类的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        前面说了Spring、SpringBoot、Mybatis这三个框架,而SpringBoot是用来整合各种框架的,简单来说它就是框架的框架。

特点:

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置

pom.xml拆解:

        要搞清楚SpringBoot运行流程,我们首先就必须要搞清楚的是它的pom.xml文件的构造,下面我们来简单说一下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.jt</groupId>
    <artifactId>springboot_demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot_demo1</name>
    <description>Demo project for Spring Boot</description>


    <properties>
        <java.version>1.8</java.version>
        <!--跳过测试类打包-->
        <skipTests>true</skipTests>
    </properties>


    <dependencies>
        <dependency>
            <
<think>好的,用户想了解SpringBoot运行流程并获取相关流程图。首先,我需要回忆一下Spring Boot的启动过程。记得SpringBoot的入口是main方法里的SpringApplication.run(),然后会初始化各种配置,比如加载环境变量、创建应用上下文,还有自动配置之类的。可能需要分步骤说明整个流程,比如从启动类开始,到准备环境,创建上下文,刷新上下文,最后执行Runners。用户需要流程图,但作为文本回答,无法直接提供图片,所以得用文字描述流程,或者建议他们查看官方文档或使用生成流程图的工具。另外,要注意引用之前的引用内容,但用户提供的引用似乎和SpringCloud相关,可能不太直接相关,但可以适当提及Spring Boot如何与Spring Cloud集成,但重点还是放在启动流程上。需要确保使用正确的中文术语,比如“应用上下文”、“Bean工厂”等。同时,按照用户的要求,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能用不上数学公式,但要注意其他LaTeX格式,比如代码块用反引号包裹。另外,用户提到生成相关问题,我需要根据SpringBoot启动流程的内容,提出几个相关的问题,比如启动机制、生命周期、配置加载顺序、扩展点、与Spring Cloud的关系等。确保问题有逻辑性,覆盖用户可能感兴趣的方面。最后,检查是否符合系统级指令,比如引用标识是否正确添加,是否有使用中文回答,结构是否清晰。可能需要注意引用之前的引用内容,但用户提供的引用可能不太相关,所以可能需要忽略或谨慎引用。</think>### Spring Boot应用启动流程解析 Spring Boot的启动流程分为六个关键阶段,以下是详细说明: 1. **启动类入口** ```java @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` - 通过`SpringApplication.run()`方法初始化应用上下文[^3] 2. **环境准备阶段** - 加载`application.properties/yml`配置文件 - 创建`ConfigurableEnvironment`对象 - 激活指定Profile(如dev/test/prod) 3. **上下文创建阶段** - 根据应用类型创建对应`ApplicationContext`: - Web应用:`AnnotationConfigServletWebServerApplicationContext` - 非Web应用:`AnnotationConfigApplicationContext` - 初始化Bean工厂`DefaultListableBeanFactory` 4. **配置加载阶段** - 解析`@SpringBootApplication`组合注解: ```java @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan ``` - 自动配置加载过程: $$ \text{spring.factories} \rightarrow \text{AutoConfigurationImportSelector} \rightarrow \text{条件注解校验} $$ 5. **上下文刷新阶段** - 调用`refreshContext()`方法: ```mermaid graph TD A[准备刷新] --> B[初始化BeanFactory] B --> C[执行BeanFactoryPostProcessor] C --> D[注册BeanPostProcessor] D --> E[初始化消息源] E --> F[初始化事件广播器] F --> G[注册监听器] G --> H[实例化非延迟加载单例] ``` 6. **后处理阶段** - 执行`CommandLineRunner`和`ApplicationRunner` - 启动内嵌Web服务器(Tomcat/Jetty/Undertow) ### 流程图文本描述 ``` [启动类入口] ↓ [初始化SpringApplication] ↓ [加载环境配置] ↓ [创建应用上下文] ↓ [准备Bean工厂] ↓ [执行自动配置] → (通过spring-autoconfigure-metadata.properties过滤) ↓ [发布ApplicationStartedEvent] ↓ [启动内嵌服务器] ↓ [执行Runners] ↓ [应用就绪] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值