[TEST] Spring Boot 快速入门指南 - 1769246843980

Spring Boot 快速入门指南

前言

如果你已经熟悉传统的 Spring 框架,那么你一定体会过配置 XML 文件的繁琐:applicationContext.xml、web.xml、各种 bean 配置......Spring Boot 的出现彻底改变了这一切。它通过"约定优于配置"的理念,让开发者能够快速搭建生产级别的 Spring 应用。

Spring Boot 核心特性

Spring Boot 相比传统 Spring 的核心改进:

  1. 自动配置(Auto-Configuration):根据类路径中的依赖自动配置 Spring 应用
  2. 起步依赖(Starter Dependencies):一站式依赖管理,无需关心版本兼容
  3. 内嵌服务器:无需部署 WAR 包到外部 Tomcat,直接运行 JAR 即可
  4. 生产就绪特性:内置健康检查、监控指标等企业级功能

传统 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 启动内嵌服务器 应用启动完成

运行与测试

  1. 启动应用
bash 复制代码
mvn spring-boot:run
  1. 测试接口
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.propertiesapplication.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, 入门教程

相关推荐
2601_9637491043 分钟前
越华环保集团数字化污水治理:端边云采集架构与平台对接实现
java·大数据·架构
朦胧之1 小时前
PostgreSQL 数据库笔记
人工智能·后端
xcLeigh1 小时前
Go入门:整数类型的溢出与安全边界
java·安全·golang
源码宝2 小时前
SpringBoot+Vue2 诊所门诊管理系统,完整前后端源码,可直接部署上线
java·源码·his系统·门诊系统·程序代码·诊所系统·门诊his
yychen_java2 小时前
九:Text-to-SQL 智能数据查询与 Human-in-the-Loop 人机协作
java·人工智能·架构
user_admin_god2 小时前
数据采集/交换系统设计经验
spring boot·spring·策略模式
lhldsg3 小时前
智慧场馆解决方案小程序开发实战:从架构设计到部署指南
java·小程序·uni-app
IT_陈寒3 小时前
Redis缓存雪崩把我坑惨了,这次长记性了
前端·人工智能·后端
Freak嵌入式3 小时前
Pico UART 数据收发实战:硬件配置、MicroPython 编程
java·开发语言·单片机·嵌入式硬件·生活
LucianaiB3 小时前
用 WorkBuddy 研究腾讯、阿里和 DeepSeek,我没敢直接说「AI 很赚钱」
后端