SpringBoot 全面介绍
SpringBoot 是由 Pivotal 团队(后归属于 VMware)基于 Spring 框架推出的轻量级、约定优于配置的开源框架,核心目标是简化 Spring 应用的开发、配置、部署和运维,让开发者能够快速搭建生产级别的 Spring 应用。
核心定位
SpringBoot 并非替代 Spring,而是对 Spring 框架的封装和增强:
- 解决 Spring 原生开发中 “配置繁琐、依赖管理复杂、部署麻烦” 等痛点;
- 提供 “开箱即用” 的能力,同时保留足够的灵活性(支持自定义配置);
- 专注于快速构建独立的、可运行的 Spring 应用(尤其是微服务场景)。
核心特性
约定优于配置(Convention over Configuration)
SpringBoot 内置了大量默认配置规则,无需手动编写 XML 配置(如 Spring 传统的 applicationContext.xml),仅需少量配置(甚至零配置)即可启动应用:
- 默认扫描主程序所在包及其子包的组件;
- 默认配置数据源、日志、Web 容器(Tomcat)等核心组件;
- 通过
application.yml/application.properties即可覆盖默认配置。
自动配置(AutoConfiguration)
这是 SpringBoot 最核心的特性:
- 基于项目中引入的依赖(如
spring-boot-starter-web),自动识别并配置相关组件(如 DispatcherServlet、Tomcat、Jackson 等); - 底层通过
@EnableAutoConfiguration注解结合 SPI(服务提供者接口)机制实现,开发者可通过@Conditional系列注解自定义自动配置规则; - 支持通过
spring-boot-starter依赖 Starter 套件,一键引入场景化依赖(如 Web、数据库、缓存、消息队列等)。
起步依赖(Starter Dependencies)
将常用场景的依赖打包成统一的 Starter,避免手动管理依赖版本和依赖冲突:
| 常用 Starter | 用途 |
|---|---|
spring-boot-starter-web |
Web 开发(Spring MVC + Tomcat) |
spring-boot-starter-data-jpa |
持久层(JPA + Hibernate) |
spring-boot-starter-mybatis |
持久层(MyBatis) |
spring-boot-starter-redis |
Redis 缓存操作 |
spring-boot-starter-test |
单元测试(JUnit + Mockito) |
嵌入式容器
SpringBoot 内置了 Tomcat(默认)、Jetty、Undertow 等 Servlet 容器,应用可直接打成 可执行 JAR 包,无需手动部署到外部容器:
- 执行
java -jar xxx.jar即可启动应用; - 支持通过配置修改容器端口、线程池等参数。
监控与运维
- 内置
spring-boot-starter-actuator,可暴露应用健康状态、指标、日志、环境变量等监控端点(如/actuator/health、/actuator/metrics); - 支持与 Prometheus、Grafana 等监控工具集成,实现可视化监控和告警;
- 支持热部署(
spring-boot-devtools),开发阶段无需重启应用即可生效代码修改。
简化部署
- 支持打包为可执行 JAR/WAR 包,也支持 Docker 容器化部署;
- 与 CI/CD 工具(Jenkins、GitLab CI)无缝集成,简化持续交付流程。
无代码生成 & 无 XML 配置
完全基于注解驱动开发,无需生成额外代码,也无需编写 XML 配置文件,核心配置通过注解(如 @SpringBootApplication、@RestController)和配置文件实现。
说些什么吧!