本文全面总结 SpringBoot 核心知识点,从基础入门、环境搭建、核心注解、配置文件,到自动配置原理、Starter 机制、实战整合、打包部署、高级特性及面试高频考点,适合新手学习、复习、面试,一站式掌握 SpringBoot!
目录
- SpringBoot 核心概述
- 环境搭建与项目创建
- 核心注解(面试 / 开发必备)
- 核心配置文件
- 起步依赖(Starter)机制
- 自动配置原理(面试必考)
- 内嵌服务器
- 实战整合常用技术(开发高频)
- 日志管理
- 单元测试
- 打包与部署
- 高级特性
- 面试高频考点 + 避坑指南
- 总结
一、SpringBoot 核心概述
1.1 什么是 SpringBoot
SpringBoot 是由Pivotal 团队 开发的Spring 生态脚手架框架 ,基于 Spring4.0 + 设计,彻底简化 Spring 应用的开发、配置、部署流程 ,是目前 Java 后端开发的主流首选框架。
1.2 核心特性
1.自动配置:无需手动编写 XML 配置,根据项目依赖自动配置 Bean
2.起步依赖:封装场景化依赖,一键引入,无需管理版本冲突
3.内嵌服务器:内置 Tomcat/Jetty/Undertow,直接运行项目,无需外部服务器
4.零代码生成 / 零 XML:纯注解 + Java Config 开发
5.应用监控:内置 Actuator,支持生产级应用监控
6.生态无缝整合:完美兼容 SpringMVC、SpringData、SpringCloud 等
1.3 核心优势
- 开发效率提升 10 倍以上,快速搭建项目
- 降低 Spring 入门门槛,无需精通底层原理
- 覆盖 Web、数据、缓存、消息等全业务场景
- 部署极简,打包 Jar 即可直接运行
1.4 SpringBoot vs Spring vs SpringMVC

二、环境搭建与项目创建
2.1 前置环境
- JDK:1.8(主流)/11/17
- 构建工具:Maven 3.6+ / Gradle
- IDE:IntelliJ IDEA(推荐)
2.2 两种创建方式(推荐 IDEA 直创)
方式 1:Spring Initializr 官网创建
配置:项目类型→语言→SpringBoot 版本→项目信息→添加依赖(Spring Web)→下载导入 IDEA
方式 2:IDEA 直接创建(新手首选)
New → Project → Spring Initializr → 配置信息 → 选择依赖 → 完成
2.3 标准项目结构(必记)

✅ 关键规则 :主启动类必须放在根包路径,否则 Spring 无法扫描组件!
3.1 主启动类核心:@SpringBootApplication
组合注解,等价于 3 个注解,是 SpringBoot 的灵魂:
1.@SpringBootConfiguration:标记为配置类(底层 @Configuration)
2.@EnableAutoConfiguration:开启自动配置(核心)
3.@ComponentScan:组件扫描,默认扫描主启动类包及子包
3.2 Web 开发注解

3.3 依赖注入注解

3.4 业务 / 配置注解

四、核心配置文件
4.1 两种配置格式(推荐 YML)
SpringBoot 支持 properties 和 yml 两种配置,同名 yml 优先级更高。
1. application.properties(键值对)

2. application.yml(缩进格式,推荐)

✅ YML 优势:结构清晰、支持对象 / 数组、适合复杂配置。
4.2 配置文件优先级(从高到低)
1.项目根目录 /config
2.项目根目录
3.resources/config
4.resources(默认)
4.3 多环境配置(开发必备)
拆分环境:application-{profile}.yml
1.application-dev.yml:开发环境
2.application-test.yml:测试环境
3.application-prod.yml:生产环境
主配置激活环境:

4.4 配置注入两种方式
方式 1:@Value(单个属性)

方式 2:@ConfigurationProperties(批量注入)

配置文件:

五、起步依赖(Starter)机制
5.1 什么是 Starter
Starter 是场景化依赖封装 ,SpringBoot 官方 / 第三方封装好的依赖坐标,引入即用,无需管理版本。
5.2 官方常用 Starter

5.3 Starter 原理
基于Maven 依赖传递,Starter 内部定义了场景所需所有依赖及统一版本,彻底解决版本冲突问题。
六、自动配置原理(面试必考)
6.1 核心流程
1.主启动类@SpringBootApplication → 开启@EnableAutoConfiguration
2.通过@Import导入配置选择器,读取SPI 配置文件
**3.**加载所有自动配置类
4.通过条件注解判断是否满足环境,满足则自动创建 Bean
6.2 核心条件注解

6.3 一句话总结
自动配置 = SPI 机制 + 条件注解,SpringBoot 帮你自动配置 Bean,零 XML 开发。
七、内嵌服务器
7.1 默认服务器
SpringBoot 默认内置 Tomcat,无需手动部署。
7.2 切换服务器(以 Undertow 为例)

7.3 服务器配置

八、实战整合常用技术(开发高频)
8.1 整合 SpringMVC(Web 开发)
无需配置,直接写 Controller:

8.2 整合 MyBatis
1.引入依赖

2.配置数据源

3.编写 Mapper

8.3 整合 Redis


使用:

8.4 定时任务 @Scheduled
1.主启动类加@EnableScheduling
2.编写任务

8.5 异步任务 @Async
1.主启动类加@EnableAsync
2.方法加@Async

九、日志管理
9.1 默认日志框架
SpringBoot 默认使用 Logback,无需额外配置。
9.2 日志级别
TRACE < DEBUG < INFO < WARN < ERROR < OFF,默认级别INFO。
9.3 日志配置

十、单元测试
1.默认已引入spring-boot-starter-test
2.编写测试类:

十一、打包与部署
11.1 打 Jar 包(推荐)
SpringBoot 默认打包可执行 Jar,内置服务器,一键运行。
Maven 命令:

运行:

11.2 打 War 包(外置 Tomcat)
1.主启动类继承SpringBootServletInitializer
2.pom.xml 修改为war打包
3.排除内嵌 Tomcat
4.放入外部 Tomcat 运行
十二、高级特性
12.1 热部署(devtools)
开发时自动重启项目,提升效率:

12.2 应用监控(Actuator)
引入依赖后,可监控应用健康、Bean、配置等生产级指标。
12.3 静态资源访问
默认路径:/static、/public、/resources
访问:http://localhost:8080/xxx.js
十三、面试高频考点 + 避坑指南
13.1 面试必背 10 问
1.SpringBoot 自动配置原理?
2.@SpringBootApplication 注解作用?
3.Starter 机制原理?
4.配置文件优先级?
5.内嵌服务器有哪些?如何切换?
6.SpringBoot 如何解决循环依赖?
7.@Value 和 @ConfigurationProperties 区别?
8.条件注解有哪些?作用?
9.SpringBoot 打包方式?
10.多环境配置如何实现?
13.2 开发避坑
1.主启动类必须放在根包,否则组件无法扫描
2.YML 配置严格缩进,否则报错
3.MyBatis 必须加@Mapper/@MapperScan
4.依赖版本冲突:使用 SpringBoot 父工程统一管理
5.热部署仅用于开发环境,生产环境关闭
十四、总结
SpringBoot 是 Java 后端开发的基石框架 ,核心价值是自动配置 和起步依赖,彻底解决了 Spring 开发繁琐的问题。
本文覆盖了:
✅ 入门基础 → ✅ 核心原理 → ✅ 实战整合 → ✅ 面试考点
掌握这些内容,足以应对日常企业开发 和大厂面试,是 SpringBoot 学习的一站式总结!