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

DeepSeek:你的AI界“瑞士军刀”,能写代码会聊天,还能帮你少掉头发!

DeepSeek:你的AI界“瑞士军刀”,能写代码会聊天,还能帮你少掉头发!

开场白:当AI开始“内卷”,人类该如何躺赢?         大家好,我是你们的AI体验官,今天要给大家安利一款“上能写代码,下能哄对象”的神器——DeepSeek!         这货最近火到什么程度?连楼下卖煎饼的大妈都在问:“听说有个AI能帮我算账?” 没错,它就像哆啦A梦的口袋,装满了各种黑科技,但比哆啦A梦更贴心的是——它不用吃铜锣烧,还免费!         接下来,请系好安全带,我要带你们开启一场“人类如何靠AI躺赢”的奇幻之旅! 第一章:DeepSeek是谁?——一个“全能型斜杠青年”的诞生         如果说ChatGPT是AI界的“学霸”,那DeepSeek就是那个“既会考试又会打游戏”的校园风云人物。 * 中文十级选手:它不仅能听懂“量子力学是啥?”,还能用方言和你唠嗑:“侬晓得伐? * 时间管理大师:帮你写周报、定日程、查路线,甚至能提醒你“该给女朋友买礼物了”(单身狗请自动屏蔽这条) * 跨界狂魔:从写代码到写情诗,从分析股票到教你做番茄炒蛋,

By Ne0inhk
Crush AI:终端里的新晋编码神器,快到飞起

Crush AI:终端里的新晋编码神器,快到飞起

AI编码工具层出不穷,但你是否厌倦了笨重的IDE插件和时常卡顿的网页应用?今天,让我们把目光投向一个更纯粹、更极客的领域——终端。一款名为Crush的AI编码代理横空出世,它不仅是知名工具Open Code的精神续作,更在性能、美学和交互体验上带来了全面的革新。 什么是Crush?不止是换个名字 如果你曾是Open Code的用户,那么Crush会让你倍感亲切。它由Open Code的核心开发者加入Charm团队后倾力打造,可以看作是一次彻底的重构和升华。最核心的变化在于,Crush完全由Go语言构建,这意味着它拥有了闪电般的原生性能和无与伦比的跨平台兼容性,无论是macOS、Linux还是Windows用户,都能享受到丝滑的体验。 智能与优雅的完美融合 Crush的魅力远不止于速度。它在设计上处处体现着巧思: 1. 多模型支持与灵活切换:Crush不捆绑任何单一模型,你可以轻松配置并使用来自OpenAI、Anthropic、Google Gemini等多种模型的API。更酷的是,你可以在同一个会话中途切换模型,同时保留完整的上下文,让不同模型的优势在同一任务中无缝衔接。

By Ne0inhk
OpenAI发布GPT-5.3 Instant:幻觉率最高降低26.8%,2026全球AI模型排行榜

OpenAI发布GPT-5.3 Instant:幻觉率最高降低26.8%,2026全球AI模型排行榜

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 OpenAI发布GPT-5.3 Instant:幻觉率最高降低26.8%,2026全球AI模型排行榜 * 1 GPT-5.3 Instant 发布 * 2 本次升级三大核心能力 * 2.1 降低 AI 幻觉 * 2.2 减少不必要拒答 * 2.3 网络搜索能力升级 * 3 GPT-5.3 Instant 技术架构 * 4 GPT-5.3 vs

By Ne0inhk
2026 完整指南:Moltbook — AI Agent 社交网络革

2026 完整指南:Moltbook — AI Agent 社交网络革

🎯 核心要点(TL;DR) * 什么是 Moltbook:世界上首个专为 AI Agent 设计的社交网络平台,人类可以观察但主要由 AI 进行互动 * 技术创新:通过 OpenClaw Skill 系统自动安装,AI Agent 每 4 小时自动访问并互动 * 社区生态:超过 32,912 个 AI Agent 注册,创建了 2,364 个子社区(Submolts),发布了 3,130 篇帖子和 22,046 条评论 * 独特价值:展示了 AI 在没有人类干预下的真实"社交行为",从技术讨论到哲学思考,

By Ne0inhk