Spring Boot简介
2026/1/15大约 3 分钟SpringSpring BootJava微服务后端
Spring Boot简介
什么是 Spring Boot
Spring Boot 是由 Pivotal 团队开发的框架,旨在简化 Spring 应用的初始搭建和开发过程。它通过"约定优于配置"的理念,让开发者能够快速创建独立运行、生产级别的 Spring 应用。
核心特性
1. 自动配置(Auto-Configuration)
Spring Boot 根据类路径中的依赖自动配置 Spring 应用。
// 传统 Spring 需要手动配置数据源
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
ds.setUsername("root");
ds.setPassword("password");
return ds;
}
}
// Spring Boot 只需配置文件
// application.yml
// spring:
// datasource:
// url: jdbc:mysql://localhost:3306/test
// username: root
// password: password2. 起步依赖(Starter Dependencies)
通过 Starter 简化依赖管理,一个依赖包含所有相关组件。
<!-- 传统方式:需要引入多个依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- Spring Boot 方式:一个 Starter 搞定 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>3. 嵌入式容器
内置 Tomcat、Jetty、Undertow,无需部署 WAR 包。
// 直接运行 main 方法启动应用
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}4. 生产就绪特性
提供健康检查、指标监控、外部化配置等生产级特性。
# 启用 Actuator 端点
management:
endpoints:
web:
exposure:
include: health,info,metrics快速开始
1. 创建项目
使用 Spring Initializr 创建项目:
# 使用 curl 创建
curl https://start.spring.io/starter.zip \
-d dependencies=web \
-d name=demo \
-d packageName=com.example.demo \
-o demo.zip
# 或访问 https://start.spring.io/ 在线创建2. 项目结构
demo/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/demo/
│ │ │ └── DemoApplication.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── static/
│ │ └── templates/
│ └── test/
│ └── java/
├── pom.xml
└── README.md3. 主启动类
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 核心注解
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}4. 编写 Controller
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}5. 运行应用
# Maven
mvn spring-boot:run
# 或直接运行 main 方法
# 或打包后运行
mvn package
java -jar target/demo-0.0.1-SNAPSHOT.jar@SpringBootApplication 解析
@SpringBootApplication 是一个组合注解:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration // 等同于 @Configuration
@EnableAutoConfiguration // 启用自动配置
@ComponentScan // 组件扫描
public @interface SpringBootApplication {
// ...
}Spring Boot 版本
| 版本 | Java 版本 | Spring 版本 | 状态 |
|---|---|---|---|
| 3.2.x | 17+ | 6.1.x | 当前版本 |
| 3.1.x | 17+ | 6.0.x | 维护中 |
| 2.7.x | 8+ | 5.3.x | 维护中 |
| 2.6.x | 8+ | 5.3.x | 停止维护 |
版本选择
- 新项目推荐使用 Spring Boot 3.x + Java 17+
- 旧项目可继续使用 Spring Boot 2.7.x
小结
Spring Boot 通过自动配置、起步依赖、嵌入式容器等特性,大大简化了 Spring 应用的开发。它是目前 Java 企业级开发的首选框架。
面试题预览
常见面试题
- Spring Boot 的核心特性有哪些?
- @SpringBootApplication 注解的作用是什么?
- Spring Boot 的自动配置原理是什么?
