Spring Boot 快速入门指南
前言
如果你已经熟悉传统的 Spring 框架,那么你一定体会过配置 XML 文件的繁琐:applicationContext.xml、web.xml、各种 bean 配置......Spring Boot 的出现彻底改变了这一切。它通过"约定优于配置"的理念,让开发者能够快速搭建生产级别的 Spring 应用。
Spring Boot 核心特性
Spring Boot 相比传统 Spring 的核心改进:
- 自动配置(Auto-Configuration):根据类路径中的依赖自动配置 Spring 应用
- 起步依赖(Starter Dependencies):一站式依赖管理,无需关心版本兼容
- 内嵌服务器:无需部署 WAR 包到外部 Tomcat,直接运行 JAR 即可
- 生产就绪特性:内置健康检查、监控指标等企业级功能
传统 Spring 应用
大量 XML 配置
手动管理依赖版本
部署到外部容器
Spring Boot 应用
零配置/注解驱动
Starter 自动管理
内嵌容器/独立运行
快速创建项目
方式一:使用 Spring Initializr(推荐)
访问 https://start.spring.io/,选择以下配置:
- Project: Maven
- Language: Java
- Spring Boot: 3.2.x(最新稳定版)
- Dependencies: Spring Web
点击 Generate 下载项目压缩包,解压后导入 IDE 即可。
方式二:Maven 手动创建
在 pom.xml 中添加 Spring Boot 父依赖:
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.1</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
核心注解详解
@SpringBootApplication
这是 Spring Boot 的核心注解,它是三个注解的组合:
java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
等价于传统 Spring 的配置:
@Configuration:标记为配置类@EnableAutoConfiguration:启用自动配置@ComponentScan:自动扫描当前包及子包
@RestController
组合了 @Controller 和 @ResponseBody,直接返回 JSON 数据:
java
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
对比传统 Spring :无需在每个方法上添加 @ResponseBody,也无需配置 JSON 转换器。
@Value 与 @ConfigurationProperties
@Value:注入单个配置项
java
@Value("${app.name}")
private String appName;
@ConfigurationProperties:批量注入配置(推荐)
java
@ConfigurationProperties(prefix = "app")
@Component
public class AppConfig {
private String name;
private String version;
// getter/setter
}
运行示例
完整示例代码
创建一个简单的 RESTful API:
java
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
return new User(id, "张三", "zhangsan@example.com");
}
@PostMapping
public User createUser(@RequestBody User user) {
// 实际项目中应保存到数据库
return user;
}
}
@Data
@AllArgsConstructor
class User {
private Long id;
private String name;
private String email;
}
启动流程
内嵌 Tomcat ApplicationContext SpringApplication main() 内嵌 Tomcat ApplicationContext SpringApplication main() 监听 8080 端口 run(Application.class) 加载配置文件 创建 Spring 容器 自动配置生效 扫描并注册 Bean 启动内嵌服务器 应用启动完成
运行与测试
- 启动应用:
bash
mvn spring-boot:run
- 测试接口:
bash
# 查询用户
curl http://localhost:8080/users/1
# 创建用户
curl -X POST http://localhost:8080/users \
-H "Content-Type: application/json" \
-d '{"name":"李四","email":"lisi@example.com"}'
配置文件
Spring Boot 支持 application.properties 或 application.yml(推荐):
yaml
server:
port: 8080
spring:
application:
name: spring-boot-demo
app:
name: 我的应用
version: 1.0.0
总结
Spring Boot 通过以下方式极大简化了 Spring 应用开发:
| 传统 Spring | Spring Boot |
|---|---|
| 繁琐的 XML 配置 | 注解驱动,零配置 |
| 手动管理依赖版本 | Starter 自动管理 |
| 部署到外部容器 | 内嵌容器,独立运行 |
| 需要手动配置 MVC | 自动配置 Web 环境 |
对于已经熟悉 Spring 的开发者,Spring Boot 的学习成本极低,但能带来巨大的效率提升。建议从一个简单的 Web 项目开始,逐步体验自动配置的便利性。
下一步学习方向:
- Spring Boot 整合 MyBatis/JPA
- Spring Boot Actuator 监控
- Spring Boot 微服务实践
作者 : xiexu
标签: Java, Spring Boot, 入门教程