快速开始
本章用官方生成器 start.spring.io 创建第一个 Spring Boot 项目,并写一个最简单的 REST 接口跑起来。整个过程不需要手工拼接依赖,也是后续所有章节的项目骨架来源。
用 start.spring.io 生成项目
打开浏览器访问 start.spring.io(IDEA 的 New Project → Spring Initializr 与它等价,界面稍有差异):
- 构建方式:Maven(本教程以 Maven 示例);
- 语言:Java;
- Spring Boot 版本:选 4.x 的稳定版(写作时点为 4.1.x);
- 依赖:先只勾选 Spring Web(对应
spring-boot-starter-web)。
点击生成并下载 zip,解压后用 IDEA 打开(选择其中的 pom.xml),等待依赖下载完成即可。
工程结构
demo/
├─ pom.xml
└─ src
├─ main/java/com/example/demo/
│ └─ DemoApplication.java # 启动类
├─ main/resources/
│ ├─ application.properties # 配置文件(可空)
│ └─ static/ templates/ # 静态资源与模板目录,见 10/11 章
└─ test/java/com/example/demo/ # 测试目录,见 23 章
pom.xml 的三个关键点:父工程 spring-boot-starter-parent 锁定版本;依赖 spring-boot-starter-web;插件 spring-boot-maven-plugin 负责打包可执行 jar。
启动类
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication 是启动入口,它的内部组成在 03 章展开。
第一个接口
新建 HelloController:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
@RestController 等价于 @Controller 加 @ResponseBody:类中方法直接以 JSON/文本形式返回,不再走视图渲染。
运行与验证
三种常见运行方式:
- IDEA 中直接运行
DemoApplication的main方法; - 命令行执行
mvn spring-boot:run; - 先
mvn package,再执行java -jar target/demo-0.0.1-SNAPSHOT.jar。
启动成功后控制台会打印 Tomcat 启动在 8080 端口的日志。浏览器访问 http://localhost:8080/hello,即可看到返回的文本。默认端口是 8080,修改方式见 04 章。
小练习
给控制器加一个带路径参数的接口:
@GetMapping("/hello/{name}")
public String helloName(@PathVariable String name) {
return "Hello, " + name + "!";
}
重启后访问 http://localhost:8080/hello/world,体会「加依赖、写方法、就能用」的节奏。
小结
start.spring.io 生成的骨架自带启动类与构建配置,我们只加了一个控制器就完成了第一个接口。接下来学习骨架背后最重要的机制:自动配置(03 章)。