Spring Boot 零基础入门到项目实战指南

本文面向没有任何 Spring Boot 经验的新人,帮助你从环境搭建、核心概念、代码实战一路走到完整项目的发布。所有示例均基于 Spring Boot 3.x + Java 17(当前主流版本),并结合最新的官方与社区资料进行整理归纳,确保内容新颖、可直接上手。


1️⃣ 为什么选 Spring Boot?

  • 约定优于配置:默认提供嵌入式 Tomcat、自动装配等,省去繁琐的 XML 配置
  • 微服务友好:与 Spring Cloud、Spring Data、Spring Security 等生态无缝集成
  • 社区活跃:官方文档、视频教程、开源项目层出不穷,学习资源丰富

    【2024最新】Spring Boot零基础入门小白到精通,全套教程完整版通俗易懂!

    12:21:20

  • 最新特性:Spring Boot 3 基于 Spring Framework 6,全面支持 Java 17、Jakarta EE 9,提升性能与安全性

2️⃣ 环境准备

步骤操作说明
① 安装 JDK下载并安装 OpenJDK 17(或其他 JDK 17 发行版)Spring Boot 3 只兼容 Java 17+
② 安装构建工具Maven(推荐)或 Gradle,两者均可在 pom.xml / build.gradle 中声明依赖
③ IDE 推荐IntelliJ IDEA、VS Code(配合 Spring Initializr 插件)
④ 可选工具SDKMAN! 用于管理多版本 JDK、Docker 用于容器化部署

验证:在终端执行 java -version 与 mvn -v,确保均返回 17 与对应的 Maven 版本。


3️⃣ 创建第一个 Spring Boot 项目

3.1 使用 Spring Initializr(网页版)

  1. 打开 <https://start.spring.io >
  2. 参数示例:
    • Project:Maven Project
    • Language:Java
    • Spring Boot:3.2.x(最新)
    • Packaging:Jar
    • Java:17
    • Dependencies:Spring Web、Spring Data JPA、H2 Database(演示用)
  3. 点击 Generate,解压后在 IDE 中打开。

该流程官方文档也有详细说明。

3.2 手动创建(代码示例)

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);
    }
}

只需一个 @SpringBootApplication 注解即可启动整个框架。


4️⃣ 核心概念速览

概念作用常用注解示例
依赖注入(DI)自动管理对象生命周期@Autowired@Inject@Resource@Autowired private UserService userService;
控制层(Controller)处理 HTTP 请求@RestController@GetMapping@PostMapping@GetMapping("/users")
业务层(Service)业务逻辑封装@Service@Service public class UserService { … }
持久层(Repository)数据库操作@RepositoryJpaRepositorypublic interface UserRepo extends JpaRepository<User, Long> {}
配置文件外部化属性application.yml / application.propertiesserver.port=8080
自动装配根据类路径自动加载依赖@SpringBootApplication 包含 @EnableAutoConfiguration自动引入 Tomcat、Jackson 等

Spring Boot 通过约定的方式把这些注解组合起来,开发者只需关注业务代码。


5️⃣ 实战:Todo List 小项目

下面以 Todo List 为例,完整演示从接口到持久化再到 Docker 部署的全过程。

5.1 项目结构

src/main/java/com/example/todo
 ├─ controller   // REST API
 ├─ service      // 业务层
 ├─ repository   // JPA 接口
 └─ entity       // 数据模型
src/main/resources
 └─ application.yml

5.2 实体类(Entity)

package com.example.todo.entity;

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

@Data
@Entity
@Table(name = "todos")
public class Todo {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String title;
    private Boolean completed = false;
}

使用 jakarta.persistence 替代旧的 javax.persistence,符合 Spring Boot 3 的 Jakarta EE 9 规范。

5.3 Repository

package com.example.todo.repository;

import com.example.todo.entity.Todo;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TodoRepository extends JpaRepository<Todo, Long> { }

5.4 Service

package com.example.todo.service;

import com.example.todo.entity.Todo;
import com.example.todo.repository.TodoRepository;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class TodoService {
    private final TodoRepository repo;
    public TodoService(TodoRepository repo) { this.repo = repo; }

    public List<Todo> findAll() { return repo.findAll(); }
    public Todo save(Todo todo) { return repo.save(todo); }
    public void delete(Long id) { repo.deleteById(id); }
}

5.5 Controller(REST API)

package com.example.todo.controller;

import com.example.todo.entity.Todo;
import com.example.todo.service.TodoService;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/todos")
public class TodoController {
    private final TodoService service;
    public TodoController(TodoService service) { this.service = service; }

    @GetMapping
    public List<Todo> all() { return service.findAll(); }

    @PostMapping
    public Todo create(@RequestBody Todo todo) { return service.save(todo); }

    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id) { service.delete(id); }
}

5.6 配置文件(application.yml)

spring:
  datasource:
    url: jdbc:h2:mem:todo-db;DB_CLOSE_DELAY=-1
    driver-class-name: org.h2.Driver
    username: sa
    password:
  jpa:
    hibernate:
      ddl-auto: update   # 自动建表
    show-sql: true
server:
  port: 8080

使用内存 H2 数据库,便于快速验证。

2024最新版SpringBoot零基础入门到实战(保姆级详细教程)

7:23:45

5.7 运行与测试

# 编译并启动
mvn spring-boot:run
# 或者直接打包后运行
mvn clean package
java -jar target/todo-0.0.1-SNAPSHOT.jar

使用 curl 或 Postman 访问:

curl -X POST -H "Content-Type: application/json" \
     -d '{"title":"学习 Spring Boot"}' \
     http://localhost:8080/api/todos

5.8 单元测试(示例)

@SpringBootTest
@AutoConfigureMockMvc
class TodoControllerTest {

    @Autowired MockMvc mvc;

    @Test
    void shouldCreateTodo() throws Exception {
        mvc.perform(post("/api/todos")
                .contentType(MediaType.APPLICATION_JSON)
                .content("{\"title\":\"单元测试\"}"))
           .andExpect(status().isOk())
           .andExpect(jsonPath("$.id").exists());
    }
}

Spring Boot 提供 @SpringBootTest 与 MockMvc,让控制层测试变得轻松。


6️⃣ 项目打包与 Docker 部署

6.1 打包为可执行 Jar

mvn clean package -DskipTests
# 生成 target/todo-0.0.1-SNAPSHOT.jar

6.2 Dockerfile(简洁版)

# 使用官方 OpenJDK 17 镜像
FROM eclipse-temurin:17-jdk-alpine
VOLUME /tmp
COPY target/todo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

6.3 构建与运行容器

docker build -t todo-app .
docker run -p 8080:8080 todo-app

Docker 化后,应用即可在任意平台快速部署,符合云原生最佳实践。


7️⃣ 常见问题速答

问题解答
Spring Boot 与 Spring Framework 的区别?Spring Boot 是对 Spring Framework 的“约定化”封装,提供自动装配、内嵌容器等,使得 “开箱即用”
是否必须使用 Maven?不是,Gradle 同样支持;选择取决于团队习惯。
如何切换到 MySQL?在 application.yml 中更改 datasource URL、驱动、用户名密码,并在 pom.xml 添加 mysql-connector-java 依赖。
Spring Boot 3 是否兼容旧的 javax.* 包?不兼容,已全部迁移到 jakarta.*,需要相应修改代码。
项目上线前需要做哪些优化?1) 关闭 show-sql;2) 使用 spring-boot-maven-plugin 进行层次化打包;3) 配置日志级别;4) 通过 Docker 多阶段构建减小镜像体积。

8️⃣ 小结

  • 从零搭建:只需 JDK 17、Maven、IDE,使用 Spring Initializr 即可生成项目骨架。
  • 核心概念:注解驱动、依赖注入、自动装配让开发更专注业务。
  • 实战演练:通过 Todo List 示例掌握实体、仓库、服务、控制层的完整链路。
  • 测试与部署:Spring Boot 自带测试支持,Docker 化部署一步到位,适配微服务与云原生环境。

只要按照本文的步骤动手实践,你就能在 数小时 内完成一个可运行的 Spring Boot 项目,并具备继续深入学习 Spring Cloud、Spring Security、Reactive 编程等高级主题的基础。祝你编码愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值