Spring Boot 入门与启动

笔记/Java/Spring 全家桶/Spring Boot/Spring Boot 入门与启动

本专题导航#

上级Spring 全家桶
同级Spring Framework · Spring Cloud
主题
本篇入门与启动
下一篇配置与多环境
自动配置与 Starter
Web、运维与测试

背景与动机#

Spring Boot 在 Spring Framework 之上提供约定优于配置:内嵌 Web 容器、自动装配、Starter 依赖,让你用最少配置跑起生产级应用。本篇先建立整体认识:它解决什么问题、如何启动、启动类上那几个注解各自干什么。

核心原理拆解#

1. 什么是 Spring Boot#

用最少 Spring 配置创建独立运行生产就绪的 Spring 应用。可 java -jar 直接运行,无需单独部署 WAR 到外部 Tomcat(也可打 WAR 部署)。

2. 主要特性#

  • 创建独立 Spring 应用
  • 内嵌 Tomcat / Jetty / Undertow
  • Starter 依赖,简化构建(详见 自动配置与 Starter
  • 自动配置 Spring 与第三方库
  • 生产特性:指标、健康检查、外部化配置
  • 无需 XML,基本无代码生成

3. 快速创建项目#

4. 启动类 @SpringBootApplication#

组合注解,等价于:

注解作用
@SpringBootConfiguration配置类(含 @Configuration
@EnableAutoConfiguration开启自动配置,可 exclude 排除
@ComponentScan组件扫描
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

自动配置原理见 自动配置与 Starter

5. 启动方式#

  1. main 方法 SpringApplication.run
  2. java -jar app.jar
  3. Maven / Gradle 插件 spring-boot:run

6. 是否需要独立容器#

不需要。内嵌 Servlet 容器,jar 即应用。

7. 开启 Spring Boot 特性#

  1. 继承 spring-boot-starter-parent
  2. 导入 spring-boot-dependencies BOM

8. 兼容传统 Spring XML#

@ImportResource(locations = { "classpath:spring.xml" })

9. Spring Boot 1.x、2.x 与 3.x#

版本要点
2.x基于 Spring 5 + JDK 8+
3.xJDK 17+,Jakarta EE 命名空间(javax.*jakarta.*

2.x 起配置项命名有调整;可直接读取中文配置;Actuator 端点与安全默认策略变化。

常见陷阱与错误示例#

1. 只加 @SpringBootApplication 却不扫到 Bean#

默认扫描启动类所在包及子包。若把启动类放在根包外缘、业务代码在别的包,需显式 @ComponentScan(basePackages = "...")

2. 误以为必须部署到外置 Tomcat#

Boot 默认可执行 jar 即带容器;只有特殊运维要求才打 WAR 部署。

面试高频问题#

完整 30 道速查见 Spring Boot 面试题 30 道

一句话总结#

Spring Boot 入门先记住:内嵌容器 + @SpringBootApplication + SpringApplication.run;配置、自动配置、Web 与运维分在专题后续三篇。

文章目录

文章目录