Spring Boot 入门指南:从零开始构建你的第一个应用

1. 什么是 Spring Boot?

Spring Boot 是 Pivotal 团队在 Spring 框架基础上推出的一个全新开源框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。它采用了"约定优于配置"的理念,让开发者能够快速创建独立的、生产级别的基于 Spring 的应用程序。

核心特性:

  • 自动配置:根据项目依赖自动配置 Spring 应用。
  • 独立运行:内嵌了 Tomcat、Jetty 或 Undertow 等 Web 服务器,无需部署 WAR 文件。
  • 生产就绪:提供诸如健康检查、指标、外部化配置等生产级特性。
  • 无代码生成:无需 XML 配置,也无需代码生成。

2. 环境准备与项目创建

2.1 系统要求

  • Java:JDK 8 或更高版本(推荐 JDK 11 或 17)。
  • 构建工具:Maven (3.3+) 或 Gradle (4.4+)。
  • IDE:IntelliJ IDEA、Eclipse 或 VS Code。

2.2 创建 Spring Boot 项目

推荐使用 Spring Initializr 在线生成项目骨架。

  1. 访问 Spring Initializr 网站。
  2. 选择项目信息:
    • Project:Maven 或 Gradle。
    • Language:Java。
    • Spring Boot:选择最新的稳定版本(如 3.x)。
  3. 添加依赖:例如 Spring WebSpring Data JPALombok 等。
  4. 点击 Generate 下载项目压缩包。
  5. 解压后,用 IDE 导入项目。

你也可以使用命令行创建:

bash 复制代码
curl https://start.spring.io/starter.zip -d dependencies=web -d type=maven-project -o demo.zip

3. 项目结构解析

一个典型的 Spring Boot 项目结构如下:

复制代码
src/
├── main/
│   ├── java/
│   │   └── com/
│   │       └── example/
│   │           └── demo/
│   │               ├── DemoApplication.java  # 主启动类
│   │               ├── controller/           # 控制器层
│   │               ├── service/              # 业务逻辑层
│   │               ├── repository/           # 数据访问层
│   │               └── model/                # 实体类
│   └── resources/
│       ├── application.properties  # 配置文件
│       ├── static/                 # 静态资源
│       └── templates/              # 模板文件
└── test/                           # 测试代码
pom.xml 或 build.gradle             # 构建配置文件

关键文件说明:

  • DemoApplication.java:包含 @SpringBootApplication 注解的主类,是应用的入口。
  • application.properties:核心配置文件,用于设置数据库连接、服务器端口等。

4. 编写第一个 REST API

让我们创建一个简单的"Hello World" API。

  1. 创建控制器 :在 controller 包下新建 HelloController.java
java 复制代码
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 sayHello() {
        return "Hello, Spring Boot!";
    }
}
  1. 启动应用 :运行 DemoApplication 类中的 main 方法。
  2. 测试 API :打开浏览器或使用 curl 访问 http://localhost:8080/hello,你将看到返回的字符串。

5. 配置文件详解

Spring Boot 支持多种配置方式,优先级从高到低为:

  1. 命令行参数
  2. application-{profile}.properties.yml
  3. application.properties.yml

示例 (application.properties):

properties 复制代码
# 服务器端口
server.port=8081

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret

# 日志级别
logging.level.com.example.demo=DEBUG

YAML 格式示例 (application.yml):

yaml 复制代码
server:
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: secret

logging:
  level:
    com.example.demo: DEBUG

6. 连接数据库 (Spring Data JPA)

Spring Boot 极大地简化了数据库操作。

  1. 添加依赖 :在 pom.xml 中添加 spring-boot-starter-data-jpa 和数据库驱动(如 mysql-connector-java)。
  2. 定义实体类
java 复制代码
package com.example.demo.model;

import jakarta.persistence.*;
import lombok.Data;

@Data
@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
}
  1. 创建 Repository 接口
java 复制代码
package com.example.demo.repository;

import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // 可以自定义查询方法
    User findByName(String name);
}
  1. 在 Service 或 Controller 中注入并使用
java 复制代码
@Autowired
private UserRepository userRepository;

public User createUser(User user) {
    return userRepository.save(user);
}

7. 运行与打包

7.1 运行应用

  • IDE 中 :直接运行主类的 main 方法。
  • 命令行 :在项目根目录执行 mvn spring-boot:run (Maven) 或 gradle bootRun (Gradle)。

7.2 打包部署

Spring Boot 可以将应用打包成一个可执行的 JAR 文件,内嵌了所有依赖和 Web 服务器。

bash 复制代码
# Maven
mvn clean package
# 打包后会在 target/ 目录生成 demo-0.0.1-SNAPSHOT.jar

# 运行 JAR 文件
java -jar target/demo-0.0.1-SNAPSHOT.jar

8. 总结与下一步

恭喜!你已经完成了 Spring Boot 的入门之旅。你学会了:

  • Spring Boot 的核心概念与优势。
  • 如何创建和运行一个 Spring Boot 项目。
  • 编写简单的 REST API 和连接数据库。

下一步学习建议:

  • 深入理解自动配置原理 :查看 spring-boot-autoconfigure 源码。
  • 学习 Spring Security:为你的 API 添加认证和授权。
  • 探索微服务:了解 Spring Cloud 如何基于 Spring Boot 构建分布式系统。
  • 实践项目:尝试用 Spring Boot 构建一个博客系统或待办事项应用。

Spring Boot 生态庞大,持续学习和实践是掌握它的最佳途径。

相关推荐
卷无止境1 小时前
FastAPI的测试事件在测什么?
后端·python·fastapi
拾光Ծ1 小时前
Linux五种I/O模型与fcntl非阻塞控制
java·linux·服务器·i/o模型
半旧5181 小时前
【Java Web02】WEB服务器内部实现技术揭秘
java·服务器·前端
gis开发之家1 小时前
日志怎么打才专业?Spring Boot 4 日志体系与 Logback 配置(生产级实战)
java·spring boot·后端·logback
卷无止境1 小时前
FastAPI CLI 你需要认识这把命令行利器
后端·python·fastapi
SaaS发言人1 小时前
渠道数字化解决方案横评:谁更懂快消
java·大数据·人工智能
JL151 小时前
Java并发编程面试全攻略-从synchronized到AQS底层原理
java·开发语言·面试·并发编程
ZC跨境爬虫1 小时前
LeetCode 119. 杨辉三角 II(原地更新优化详解 + Java Python 实现)
java·python·leetcode
AINative软件工程1 小时前
LLM 请求合并工程实践:用 Single-Flight 把并发重复调用从 N 次砍成 1 次
后端·llm·ai编程