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

2026年03月20日全球AI前沿动态

一句话总结:文档聚焦2026年3月19日前后AI领域全景动态,涵盖通用/垂直大模型发布、智能体应用落地、硬件基础设施升级、企业战略调整、行业影响与监管等多维度,集中呈现模型轻量化、智能体规模化、软硬件协同、安全合规强化的核心趋势。 一、模型与技术突破 1.1 通用大模型(大语言模型与多模态模型) * OpenAI:发布GPT-5.4 mini和nano轻量模型;mini在SWE-Bench Pro编码测试达54.4%(距满血版差3.3%),OSWorld计算机使用达72.1%(媲美旗舰),输入0.75美元/百万token、输出4.5美元(仅为GPT-5.4的1/3),支持40万上下文窗口;nano输入0.2美元/百万token、输出1.25美元,向ChatGPT免费用户开放,聚焦低延迟基础任务;提出“大模型决策+小模型执行”子智能体架构,

一次性搞懂什么是AIGC!(一篇文章22个基本概念)

一次性搞懂什么是AIGC!(一篇文章22个基本概念)

全新的时代,AIGC(Artificial Intelligence Generative Content,即人工智能生成内容)正在重新塑造着内容创作生态。当常识能被机器识别,当艺术被重新定义,当创意不再需要人工,广告营销行业将迎来一场生产变革巨浪。数英将持续聚焦AIGC领域,通过资讯分享、认知科普、方法总结、深度访谈等,带领大家多方位了解AIGC。 本期内容,我们将梳理22个AI基础概念,带你搞清楚。 以ChatGPT、Midjourney为首的AIGC软件出现至今,不过短短半年时间,已经从方方面面浸入到人们的生活里,与此同时,大量专业术语涌入我们视野。 AI、AIGC、AGI、Bing AI,ChatGPT……这些字母缩写到底是什么?有什么区别?和广告营销有什么关系? 本文将尽可能用最直白通俗的语言,结合广告营销案例,帮你搞清楚互联网上常见的AI术语。 一、基本概念/理论 1、AI 工作原理 AI,全称Artificial Intelligence,人工智能。顾名思义,

Obsidian AI插件全攻略:从Copilot到Text Generator,手把手教你打造智能笔记系统

Obsidian AI插件全攻略:从Copilot到Text Generator,手把手教你打造智能笔记系统 在信息爆炸的时代,如何高效管理知识成为内容创作者和专业人士的核心竞争力。Obsidian作为一款以本地优先、双向链接著称的笔记工具,正通过AI插件的生态扩展,逐渐演变为智能知识管理的中枢。不同于简单的文本存储,现代笔记系统需要理解内容语义、自动建立关联、甚至辅助创作——这正是AI大模型与Obsidian结合带来的革命性体验。 本文将深入解析Obsidian中五大类AI插件的实战应用场景,从基础的API配置到高阶的自动化工作流,涵盖文本生成、知识图谱增强、多模态交互等前沿功能。无论你是希望用AI辅助日常写作的博主,还是需要构建企业级知识库的管理者,都能找到适配的解决方案。我们特别关注那些真正能提升效率的"隐形技术"——那些安装后立即生效,却不会打断你原有工作流的智能插件。 1. 核心AI插件配置与实战 1.1 Text Generator:你的智能写作助手 作为Obsidian生态中最受欢迎的AI插件之一,Text Generator重新定义了笔记创作的方式。它支持通

告别复杂配置!Z-Image-Turbo开箱即用的AI绘画体验

告别复杂配置!Z-Image-Turbo开箱即用的AI绘画体验 1. 引言:为什么你需要关注 Z-Image-Turbo? 在当前 AI 图像生成技术飞速发展的背景下,用户对文生图模型的要求已不再局限于“能画出来”,而是追求高质量、高速度、低门槛和强可控性。然而,许多开源模型仍面临部署复杂、显存占用高、推理缓慢等问题,极大限制了普通开发者和创作者的实际使用。 正是在这一背景下,阿里巴巴通义实验室推出的 Z-Image-Turbo 成为一股清流。作为 Z-Image 系列的蒸馏版本,它以仅需 8 步推理即可生成照片级图像 的能力,结合出色的中英文提示理解与消费级显卡友好性(16GB 显存可运行),重新定义了高效文生图的标准。 更关键的是,ZEEKLOG 镜像构建团队推出的 Z-Image-Turbo 开源镜像 实现了真正的“开箱即用”——内置完整模型权重、无需联网下载、集成 WebUI 与 API、支持进程守护,大幅降低了部署成本。本文将带你全面了解该模型的技术优势,