上一篇我们讨论了Spring Boot如何通过“约定优于配置”的理念,彻底改变了传统Java开发的繁琐模式。今天,我们将通过一次直观的实战,手把手带你在3分钟内从零创建并运行你的第一个Spring Boot应用,亲身体验其“开箱即用”的开发效率。
一、前置准备:环境搭建
在开始之前,请确保你的开发环境中已安装以下基础工具,整个过程约5分钟即可完成:
- JDK:推荐使用JDK 8或JDK 11(Spring Boot 3.x需要JDK 17+,本文以更通用的JDK 8为例)。
- 构建工具:Maven 3.6+ 或 Gradle 7.0+(本文采用主流的Maven进行演示)。
- 开发IDE:IntelliJ IDEA(推荐)或 Eclipse。IDEA对Spring Boot的支持更友好。
- 测试工具:浏览器或Postman(用于测试接口)。
打开终端,执行以下命令验证环境:
# 验证JDK
java -version
# 验证Maven
mvn -v
若能正常显示版本号,则说明环境准备就绪。
二、核心步骤:3分钟创建应用
Spring Boot提供了两种便捷的创建方式,你可以根据情况选择。
方式一:通过Spring Initializr官网创建(适合新手)
步骤1:访问官网并配置项目(约1分钟)
访问 https://start.spring.io/,按如下参数填写:
- Project: Maven
- Language: Java
- Spring Boot: 选择稳定的2.7.x版本
- Project Metadata:
- Group: 包名(如
com.example)
- Artifact: 项目名(如
first-springboot-app)
- Packaging: Jar
- Java: 8
步骤2:添加依赖(约30秒)
在“Dependencies”搜索框中输入“Spring Web”,勾选Spring Web依赖,它会自动引入Web开发所需的全部组件。
步骤3:生成并导入项目(约30秒)
点击“Generate”按钮下载项目压缩包,解压后使用IDEA的“Open”功能打开项目文件夹,IDE会自动加载并下载Maven依赖。
方式二:通过IDEA集成工具创建(更高效,推荐)
步骤1:在IDEA中新建项目(约1分钟)
打开IDEA,选择 File -> New -> Project,左侧选择 Spring Initializr。配置信息(项目类型、语言、版本、元数据)与官网方式一致。
步骤2:选择依赖(约30秒)
点击“Next”,在依赖搜索框中同样选择“Spring Web”。
步骤3:完成创建(约30秒)
确认项目名称和路径,点击“Finish”。IDEA会自动完成项目初始化和依赖下载。
三、项目结构解析
项目创建成功后,你会看到以下标准目录结构,这正是“约定优于配置”的体现:
first-springboot-app/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/firstspringbootapp/
│ │ │ └── FirstSpringbootAppApplication.java # 项目启动类(核心)
│ │ └── resources/
│ │ ├── application.properties # 全局配置文件
│ │ ├── static/ # 静态资源目录
│ │ └── templates/ # 模板文件目录
│ └── test/ # 测试代码目录
├── pom.xml # Maven依赖配置文件
└── README.md
需要重点了解两个核心文件:
1. 启动类 (FirstSpringbootAppApplication.java)
这是应用的入口,标有@SpringBootApplication注解。
package com.example.firstspringbootapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 核心注解,标识这是一个Spring Boot应用
public class FirstSpringbootAppApplication {
public static void main(String[] args) {
SpringApplication.run(FirstSpringbootAppApplication.class, args);
}
}
2. 配置文件 (application.properties)
用于自定义应用参数,如服务器端口、数据库连接等,初始为空。
四、编写第一个Web接口
无需任何额外配置,直接编写Controller即可。
在启动类所在的包(com.example.firstspringbootapp)下,新建一个名为HelloController的Java类:
package com.example.firstspringbootapp;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 标识为Web控制器,返回JSON数据
public class HelloController {
@GetMapping("/hello") // 处理GET请求,路径为/hello
public String sayHello() {
return "Hello Spring Boot!这是我的第一个应用~";
}
// 进阶示例:接收请求参数
@GetMapping("/greet")
public String greet(String name) {
return "Hello " + (name == null ? "陌生人" : name) + ",Spring Boot太简单了!";
}
}
@RestController: 组合了@Controller和@ResponseBody,声明这是一个返回数据的控制器。
@GetMapping(“/hello”): 将HTTP GET请求映射到特定的处理方法上。
五、启动应用与测试
步骤1:启动应用
在IDEA中找到启动类FirstSpringbootAppApplication,点击其左侧的绿色运行按钮。控制台输出类似Started ... in x.xxx seconds的日志且无报错,即表示启动成功。内置的Tomcat服务器默认运行在8080端口。
步骤2:测试接口
- 浏览器测试:打开浏览器,访问
http://localhost:8080/hello,你将看到返回的文字信息。
- 带参测试:访问
http://localhost:8080/greet?name=云栈。
- 使用Postman:新建一个GET请求,输入上述地址,发送即可查看结果。
六、自定义配置(可选)
Spring Boot的默认行为可以通过application.properties文件轻松修改,例如改变端口或添加上下文路径。这对于后续配置数据库连接等场景非常有用。
打开src/main/resources/application.properties文件,添加以下配置:
# 修改服务器端口
server.port=8081
# 设置应用上下文路径
server.servlet.context-path=/api
# 自定义应用名称
spring.application.name=my-first-app
保存后重启应用,此时接口地址将变为:http://localhost:8081/api/hello。
七、常见问题排查
- 端口被占用:启动时报错,通常是因为8080端口被其他程序占用。解决方法:在
application.properties中修改server.port为其他端口(如8081、8090)。
- 接口访问404:
- 原因A:
Controller类没有放在启动类所在的包或其子包下,导致Spring扫描不到。请确保包路径正确。
- 原因B:配置了
server.servlet.context-path后,访问地址未包含该路径前缀。
- Maven依赖下载失败:通常是网络问题。可以尝试在IDEA中右键点击项目,选择
Maven -> Reload Project。如果问题持续,建议检查并配置Maven镜像仓库(如阿里云镜像)以加速下载。
八、总结
通过这个简单的实战,我们直观地感受到了Spring Boot的核心优势:
- 零配置启动:一个主类、一个main方法即可运行。
- 起步依赖:勾选“Spring Web”即可获得完整Web开发能力,无需管理依赖版本。
- 快速开发:编写一个带有注解的Controller类,即刻拥有REST API。
- 外部化配置:通过简单的配置文件即可灵活调整应用参数。
你已成功迈出了Spring Boot开发的第一步。这个基础项目骨架,将是后续集成MyBatis操作数据库、添加缓存、构建微服务等更复杂功能的坚实起点。