跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Spring Boot 开发入门:从零搭建第一个 Web 项目

介绍 Spring Boot 开发入门流程。首先准备 JDK、Maven 及 IDE 环境并验证。接着通过 Spring Initializr 或 IDEA 创建项目,解析核心目录结构。编写启动类与 Controller 实现 RESTful 接口,配置 application.properties/yml 文件。最后演示项目启动、接口测试及常见问题解决(如端口占用、依赖慢)。重点掌握约定大于配置、自动配置及 Starter 依赖管理。

魔法巫师发布于 2026/4/6更新于 2026/10/17110 浏览

前言

Spring Boot 是由 Pivotal 团队推出的基于 Spring 框架的轻量级开发框架,它简化了 Spring 应用的配置流程,通过'约定大于配置'的核心思想,让开发者无需繁琐的 XML 配置就能快速搭建和运行项目。本文将从环境准备、项目创建、核心代码编写到运行测试,手把手教你入门 Spring Boot 开发,全程附带可运行的代码示例。

一、前置准备

1. 环境要求
  • JDK:推荐 JDK 8 及以上(Spring Boot 3.x 需 JDK 17+,本文以 Spring Boot 2.7.x + JDK 8 为例);
  • Maven/Gradle:项目构建工具,本文使用 Maven;
  • 开发工具:IntelliJ IDEA(推荐)或 Eclipse;
  • 浏览器 / Postman:用于接口测试。
2. 验证环境

打开终端 / 命令行,执行以下命令验证环境是否配置成功:

# 验证 JDK
java -version
# 验证 Maven
mvn -v

若输出对应版本信息,说明环境配置完成。

二、创建 Spring Boot 项目

方式 1:通过 Spring Initializr(官方脚手架)创建

这是最推荐的方式,可快速生成标准化项目结构:

  1. 打开 Spring Initializr 官网;
  2. 配置项目基础信息:
    • Project:Maven Project(本文选 Maven);
    • Language:Java;
    • Spring Boot Version:2.7.x(稳定版);
    • Project Metadata:
      • Group:自定义(如 com.example);
      • Artifact:项目名(如 spring-boot-demo);
      • Name:spring-boot-demo;
      • Description:Spring Boot 入门示例;
      • Package Name:com.example.demo;
      • Packaging:Jar(Spring Boot 推荐 Jar 包运行);
      • Java Version:8;
  3. 添加依赖:在「Dependencies」中搜索并添加 Spring Web(Web 开发核心依赖);
  4. 点击「Generate」下载项目压缩包,解压后用 IDEA 打开。
方式 2:IDEA 直接创建(更便捷)
  1. 打开 IDEA → 新建项目 → 选择「Spring Initializr」;
  2. 按上述步骤配置项目信息和依赖,点击「Next」→「Finish」,IDEA 会自动下载依赖并生成项目结构。

三、项目核心结构解析

生成的项目默认结构如下(核心目录):

spring-boot-demo/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── demo/
│   │   │               └── DemoApplication.java // 项目启动类(核心)
│   │   └── resources/
│   │       ├── application.properties // 全局配置文件
│   │       ├── static/ // 静态资源(CSS/JS/图片)
│   │       └── templates/ // 模板文件(Thymeleaf 等)
│   └── test/ // 测试目录
└── pom.xml // Maven 依赖配置文件
  • DemoApplication.java:项目入口,包含 @SpringBootApplication 注解,启动 Spring Boot 应用;
  • application.properties:配置文件,可设置端口、数据库连接等(也可使用.yml 格式);
  • pom.xml:管理项目依赖,Spring Boot 已内置父依赖,无需手动配置版本。

四、核心代码编写

1. 启动类(自动生成,无需修改)

DemoApplication.java 是项目的启动入口,代码如下:

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * Spring Boot 启动类
 * @SpringBootApplication 是核心注解,包含:
 * 1. @Configuration:标记为配置类
 * 2. @EnableAutoConfiguration:开启自动配置
 * 3. @ComponentScan:扫描当前包及子包下的组件
 */
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        // 启动 Spring Boot 应用
        SpringApplication.run(DemoApplication.class, args);
    }
}
2. 编写第一个 Controller(接口开发)

在 com.example.demo 包下新建 controller 目录,创建 HelloController.java,用于处理 HTTP 请求:

package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @RestController:组合注解,等价于 @Controller + @ResponseBody
 * 表示该类是控制器,且返回值直接作为 JSON/字符串响应,而非视图
 */
@RestController
@RequestMapping("/hello") // 统一请求路径前缀
public class HelloController {
    // 示例 1:基础 GET 请求,返回字符串
    @GetMapping("/say")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
    // 示例 2:带路径参数的 GET 请求
    @GetMapping("/user/{name}")
    public String sayHelloToUser(@PathVariable String name) {
        return "Hello, " + name + "! Welcome to Spring Boot World.";
    }
    // 示例 3:返回 JSON 格式数据(Spring Boot 自动序列化)
    @GetMapping("/info")
    public User getUserInfo() {
        User user = new User();
        user.setId(1);
        user.setName("张三");
        user.setAge(25);
        return user;
    }
    // 内部静态类:用户实体
    static class User {
        private Integer id;
        private String name;
        private Integer age;
        // 必须提供 getter 方法,否则 JSON 序列化会缺失字段
        public Integer getId() { return id; }
        public void setId(Integer id) { this.id = id; }
        public String getName() { return name; }
        public void setName(String name) { this.name = name; }
        public Integer getAge() { return age; }
        public void setAge(Integer age) { this.age = age; }
    }
}
3. 配置文件自定义(可选)

默认配置文件 application.properties 可修改端口、应用名等:

# 应用名称
spring.application.name=spring-boot-demo
# 服务端口(默认 8080,可自定义)
server.port=8081
# 编码格式
server.servlet.encoding.force=true
server.servlet.encoding.charset=UTF-8

也可改为 application.yml(更简洁的格式):

spring:
  application:
    name: spring-boot-demo
  server:
    port: 8081
  servlet:
    encoding:
      force: true
      charset: UTF-8

五、运行与测试项目

1. 启动项目

有两种启动方式:

  • 方式 1:在 IDEA 中直接运行 DemoApplication.java 的 main 方法;
  • 方式 2:通过 Maven 命令启动(终端进入项目根目录):
# 打包(可选)
mvn clean package
# 启动项目
mvn spring-boot:run

启动成功后,控制台会输出如下日志(关键信息):

Started DemoApplication in 2.531 seconds (JVM running for 3.012)
2. 接口测试

打开浏览器或 Postman,访问以下地址验证接口:

  • 测试基础接口:http://localhost:8081/hello/say 响应:Hello, Spring Boot!
  • 测试带参数接口:http://localhost:8081/hello/user/李四 响应:Hello, 李四!Welcome to Spring Boot World.
  • 测试 JSON 接口:http://localhost:8081/hello/info 响应(JSON 格式):
{
  "id": 1,
  "name": "张三",
  "age": 25
}

六、核心知识点补充

1. @SpringBootApplication 注解

该注解是 Spring Boot 的核心注解,整合了三个关键注解:

  • @Configuration:将类标记为配置类,可定义 Bean;
  • @EnableAutoConfiguration:开启自动配置,Spring Boot 根据依赖自动配置组件(如引入 Spring Web 则自动配置 Tomcat、DispatcherServlet);
  • @ComponentScan:扫描当前包及子包下的 @Controller、@Service、@Repository、@Component 等注解的类。
2. 依赖管理

Spring Boot 通过 spring-boot-starter-parent 父依赖统一管理依赖版本,无需手动指定版本号。常用 starter 依赖:

  • spring-boot-starter-web:Web 开发(包含 Tomcat、Spring MVC);
  • spring-boot-starter-data-jpa:JPA 操作数据库;
  • spring-boot-starter-mybatis:MyBatis 整合;
  • spring-boot-starter-test:单元测试。
3. 打包与运行

通过 mvn clean package 可将项目打包为 Jar 包,直接通过以下命令运行(无需部署到 Tomcat):

java -jar target/spring-boot-demo-0.0.1-SNAPSHOT.jar

七、常见问题及解决

1. 端口被占用

修改 application.properties 中的 server.port(如改为 8082),或关闭占用端口的进程。

2. 依赖下载慢

在 pom.xml 中添加阿里云 Maven 镜像:

<repositories>
    <repository>
        <id>aliyunmaven</id>
        <url>https://maven.aliyun.com/repository/public</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>aliyunmaven</id>
        <url>https://maven.aliyun.com/repository/public</url>
    </pluginRepository>
</pluginRepositories>
3. 启动时报'找不到主类'

检查 pom.xml 中是否添加了 Spring Boot 插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

八、总结

本文从环境准备到项目运行,完整演示了 Spring Boot 第一个 Web 项目的搭建过程,核心要点:

  1. Spring Boot 核心是'约定大于配置',通过 starter 依赖和自动配置简化开发;
  2. @SpringBootApplication 是启动类的核心注解,整合了配置、自动配置、组件扫描;
  3. @RestController 用于开发 RESTful 接口,返回 JSON / 字符串响应;
  4. 项目可直接打包为 Jar 包运行,无需外部容器。

后续可进一步学习 Spring Boot 整合数据库(MyBatis/MySQL)、拦截器、全局异常处理、配置文件多环境切换等内容,逐步掌握 Spring Boot 核心能力。

目录

  1. 前言
  2. 一、前置准备
  3. 1. 环境要求
  4. 2. 验证环境
  5. 验证 JDK
  6. 验证 Maven
  7. 二、创建 Spring Boot 项目
  8. 方式 1:通过 Spring Initializr(官方脚手架)创建
  9. 方式 2:IDEA 直接创建(更便捷)
  10. 三、项目核心结构解析
  11. 四、核心代码编写
  12. 1. 启动类(自动生成,无需修改)
  13. 2. 编写第一个 Controller(接口开发)
  14. 3. 配置文件自定义(可选)
  15. 应用名称
  16. 服务端口(默认 8080,可自定义)
  17. 编码格式
  18. 五、运行与测试项目
  19. 1. 启动项目
  20. 打包(可选)
  21. 启动项目
  22. 2. 接口测试
  23. 六、核心知识点补充
  24. 1. @SpringBootApplication 注解
  25. 2. 依赖管理
  26. 3. 打包与运行
  27. 七、常见问题及解决
  28. 1. 端口被占用
  29. 2. 依赖下载慢
  30. 3. 启动时报“找不到主类”
  31. 八、总结

更多推荐文章

查看全部
  • LightRAG 框架介绍及 WebUI 本地部署指南
  • 解决 JavaScript 精度丢失:BigNumber.js 核心用法与场景
  • AI 工具链实战:MLflow 实验跟踪指南
  • 基于扣子平台部署 OpenClaw 并接入飞书指南
  • Lit-LLaMA 大语言模型部署与微调指南
  • 昇腾 NPU 部署 Llama 2 模型:性能测试与优化实战
  • OpenClaw 集成 Telegram 机器人开发指南
  • HTML input type 属性全解析与实战避坑指南
  • 利用 KSWEB 在安卓手机部署 Typecho 博客及内网穿透方案
  • 安卓手机使用 Termux 部署 AstrBot 与 NapCat QQ 机器人
  • Python 合并多个 PDF 文件:完整指南与实践
  • 企业级网络建设与调试配置方案(华为设备)
  • Python 基础语法进阶:条件判断与循环控制详解
  • 基于 Go 构建可自我演进 AI 助手的架构设计与实践
  • Ubuntu 24.04 桌面环境切换 Wayland 为 X11
  • 基于 FPGA 的 CLAHE 自适应限制对比度直方图均衡算法硬件实现
  • NewStar CTF Web 题解整理
  • Ubuntu 22.04 安装 VMware Workstation Pro 实战指南
  • OpenClaw QQ 机器人插件安装与配置指南
  • 华为荣耀手机鸿蒙系统降级至 EMUI 操作指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online