Spring Boot 是 Spring 生态的一站式解决方案,通过"约定优于配置"的理念,极大简化了 Spring 应用的搭建和开发过程。本文基于 Spring Boot 3.x 版本,带你从零快速上手。
一、环境准备
1.1 版本要求
Spring Boot 3.x 对环境有明确要求:
- JDK:必须使用 Java 17 及以上版本(推荐 Java 17 LTS 或 Java 21 LTS)
- Maven:3.6.3 及以上
- Gradle:7.x 及以上
- Servlet 容器:Tomcat 10+(Jakarta EE 9+)
1.2 创建项目的三种方式
方式一:Spring Initializr(推荐)
访问 https://start.spring.io,在线生成项目骨架:
- 选择 Project(Maven/Gradle)
- 选择 Language(Java)
- 选择 Spring Boot 版本
- 填写 Group、Artifact 等项目信息
- 添加依赖(Web、MyBatis、Redis 等)
- 点击 Generate 下载压缩包
方式二:IDEA 创建
IntelliJ IDEA 内置了 Spring Initializr 支持:
New Project→ 选择Spring Initializr- 填写项目坐标信息
- 勾选需要的 Starter 依赖
- 一键生成项目结构
方式三:手动搭建
手动创建 Maven 项目,在 pom.xml 中引入父依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/>
</parent>
二、项目结构说明
标准 Spring Boot 项目目录结构:
src/main/java
└── com/example/demo
├── DemoApplication.java # 启动类(入口)
├── controller/ # 控制层
├── service/ # 业务层
├── mapper/ # 数据访问层
├── entity/ # 实体类
├── config/ # 配置类
└── util/ # 工具类
src/main/resources
├── application.yml # 主配置文件
├── application-dev.yml # 开发环境配置
├── application-prod.yml # 生产环境配置
├── static/ # 静态资源
└── templates/ # 模板文件
src/test/java # 单元测试
2.1 启动类详解
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication 是一个组合注解,包含三个核心注解:
@SpringBootConfiguration:标记为配置类@EnableAutoConfiguration:开启自动装配@ComponentScan:开启组件扫描(默认扫描启动类所在包及其子包)
三、核心配置文件
3.1 配置文件格式
Spring Boot 支持两种格式:.properties 和 .yml(推荐 YAML)。
application.yml 示例
# 服务器配置
server:
port: 8080
servlet:
context-path: /demo
# Spring 配置
spring:
application:
name: demo-project
# 数据源配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
username: root
password: 123456
# Redis 配置
redis:
host: localhost
port: 6379
# MyBatis 配置
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.demo.entity
configuration:
map-underscore-to-camel-case: true # 驼峰命名转换
3.2 多环境配置
通过 spring.profiles.active 切换环境:
spring:
profiles:
active: dev # 激活 dev 环境
对应配置文件命名规则:application-{profile}.yml
application-dev.yml— 开发环境application-test.yml— 测试环境application-prod.yml— 生产环境
3.3 读取配置的三种方式
方式一:@Value 注解
@RestController
public class TestController {
@Value("${server.port}")
private Integer port;
@Value("${spring.application.name}")
private String appName;
}
方式二:Environment
@Autowired
private Environment env;
public void test() {
String port = env.getProperty("server.port");
}
方式三:@ConfigurationProperties(推荐)
@Component
@ConfigurationProperties(prefix = "spring.datasource")
@Data
public class DataSourceProperties {
private String url;
private String username;
private String password;
private String driverClassName;
}
四、常用 Starter 依赖
| Starter 依赖 | 说明 |
|---|---|
spring-boot-starter-web |
Web 开发(内置 Tomcat) |
spring-boot-starter-test |
单元测试(JUnit + Mockito) |
spring-boot-starter-data-jpa |
JPA 数据访问 |
spring-boot-starter-redis |
Redis 缓存 |
spring-boot-starter-amqp |
RabbitMQ 消息队列 |
spring-boot-starter-security |
安全认证框架 |
spring-boot-starter-validation |
参数校验 |
mybatis-spring-boot-starter |
MyBatis 整合(第三方) |
五、自动装配原理
5.1 核心流程
- 启动时通过
@EnableAutoConfiguration加载自动配置类 - 读取
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件 - 根据
@Conditional系列注解条件判断是否生效 - 将符合条件的 Bean 注册到 Spring 容器
5.2 常用条件注解
@ConditionalOnClass:类路径下存在指定类时生效@ConditionalOnMissingBean:容器中不存在指定 Bean 时生效@ConditionalOnProperty:配置文件中存在指定属性时生效@ConditionalOnWebApplication:Web 应用时生效
六、快速写一个接口
@RestController
@RequestMapping("/api/user")
public class UserController {
@GetMapping("/{id}")
public Result<User> getUserById(@PathVariable Long id) {
User user = new User();
user.setId(id);
user.setName("神经蛙");
user.setAge(18);
return Result.success(user);
}
@PostMapping("/add")
public Result<String> addUser(@RequestBody @Valid UserDTO dto) {
// 业务逻辑
return Result.success("添加成功");
}
}
七、热部署配置
开发阶段开启热部署,修改代码无需重启:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
IDEA 中还需开启自动编译:
Settings→Build, Execution, Deployment→Compiler→ 勾选Build project automatically- 按
Ctrl+Shift+Alt+/→Registry→ 勾选compiler.automake.allow.when.app.running
Spring Boot 3.x 最大的变化是全面迁移到 Jakarta EE,包名从 变为 ,升级旧项目时需要注意相关导入包的替换。