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

前言

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. 验证环境

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

bash

运行

# 验证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 会自动下载依赖并生成项目结构。

三、项目核心结构解析

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

plaintext

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 是项目的启动入口,代码如下:

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 请求:

java

运行

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 可修改端口、应用名等:

properties

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

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

yaml

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

五、运行与测试项目

1. 启动项目

有两种启动方式:

  • 方式 1:在 IDEA 中直接运行 DemoApplication.java 的 main 方法;

方式 2:通过 Maven 命令启动(终端进入项目根目录):bash运行

# 打包(可选) mvn clean package # 启动项目 mvn spring-boot:run 

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

plaintext

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 格式):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):

bash

运行

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

七、常见问题及解决

1. 端口被占用

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

2. 依赖下载慢

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

xml

<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 插件:

xml

<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 核心能力。如果本文对你有帮助,欢迎点赞收藏,有疑问可在评论区交流~

Read more

【2025具身智能大模型·系列13】Infinite Mobility:上海 AI Lab 推出的可交互物体生成模型,高效助力机器人仿真训练

【2025具身智能大模型·系列13】Infinite Mobility:上海 AI Lab 推出的可交互物体生成模型,高效助力机器人仿真训练

系列篇章💥 No.文章1【2025具身智能大模型·系列1】SpatialVLA:上海 AI Lab 联合上科大等推出的空间具身通用操作模型,赋能机器人3D空间理解2【2025具身智能大模型·系列2】UniAct:清华大学、商汤等联合发布具身智能框架,用通用动作空间打破机器人控制瓶颈!3【2025具身智能大模型·系列3】斯坦福HumanPlus:人形机器人实时控制与模仿学习的完美结合4【2025具身智能大模型·系列4】GR00T N1 :英伟达推出全球首个开源通用人形机器人基础模型5【2025具身智能大模型·系列5】OmniH2O:卡内基梅隆与上海交大联手打造的全能人形机器人系统6【2025具身智能大模型·系列6】OpenVLA:斯坦福开源的视觉语言动作大模型,引领机器人技术新突破7【2025具身智能大模型·系列7】HugWBC:上海交通大学与上海AI Lab打造的通用人形机器人控制器8【2025具身智能大模型·系列8】LightPlanner:中科视语开源的轻量化具身推理大模型,赋能机器人高效决策9【2025具身智能大模型·系列9】RoboMamba:北京大学推出的高效机器人多

【粉丝福利社】扣子(Coze) Skills+OpenClaw 实战:零基础玩转AI智能体

【粉丝福利社】扣子(Coze) Skills+OpenClaw 实战:零基础玩转AI智能体

💎【行业认证·权威头衔】 ✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯:ZEEKLOG博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者 🏆【荣誉殿堂】 🎖 连续三年蝉联"华为云十佳博主"(2022-2024) 🎖 双冠加冕ZEEKLOG"年度博客之星TOP2"(2022&2023) 🎖 十余个技术社区年度杰出贡献奖得主 📚【知识宝库】 覆盖全栈技术矩阵: ◾ 编程语言:.NET/Java/Python/Go/Node… ◾ 移动生态:HarmonyOS/iOS/Android/小程序 ◾ 前沿领域:

彻底摆脱API依赖:OpenCode本地AI模型配置全攻略

彻底摆脱API依赖:OpenCode本地AI模型配置全攻略 【免费下载链接】termai 项目地址: https://gitcode.com/gh_mirrors/te/termai 你是否还在为AI开发中的API调用限制、数据隐私安全和高昂的服务费用而烦恼?本文将带你一步步搭建完全本地化的AI开发环境,通过OpenCode实现自托管模型配置,让你彻底掌控AI能力,无需依赖第三方服务。 读完本文后,你将能够: * 理解OpenCode自托管模型的核心优势与应用场景 * 完成本地AI开发环境的搭建与基础配置 * 配置并运行多种主流自托管AI模型 * 解决常见的模型部署与性能优化问题 * 掌握本地模型与OpenCode的集成使用方法 OpenCode自托管模型简介 OpenCode是一个基于Go语言开发的终端AI助手,支持多种AI模型提供商,包括OpenAI、Anthropic Claude、Google Gemini等。其核心优势在于能够集成自托管模型,允许用户在本地环境中运行AI模型,无需依赖外部API服务。 自托管模型的核心优势 优势详细说明数据隐私保

30 分钟上手 OpenClaw!Windows 搭建 AI 助手,打破智能生活的边界

30 分钟上手 OpenClaw!Windows 搭建 AI 助手,打破智能生活的边界

前言 你是否曾被这样的场景困扰:想让 AI 帮忙写一份工作汇报,却要在 ChatGPT 网页、飞书机器人、钉钉助手之间反复切换;出门在外想调取家里电脑的资料,却被局域网限制束手无策;尝试接入不同的 AI 大模型,却被复杂的 API 配置劝退…… 我们对智能助手的期待,从来不是 “只能在单一平台聊聊天”,而是 “能跨场景、跨设备,像真人一样替我们解决实际问题”。 OpenClaw,正是为满足这份期待而生的开源 AI 网关工具。自 2025 年 11 月开源以来,它凭借 “一次部署,多平台通联” 的核心优势,迅速斩获 GitHub 230K + 星标,成为 AI 领域的热门项目。不同于传统的 AI 工具,OpenClaw 真正实现了