SpringBoot快速搭建RESTful應(yīng)用的流程步驟
Spring Boot Web 入門指南:零基礎(chǔ)構(gòu)建 RESTful 應(yīng)用
Spring Boot 徹底簡(jiǎn)化了 Java Web 開(kāi)發(fā)流程,讓你能在 5 分鐘內(nèi)創(chuàng)建一個(gè)可運(yùn)行的 Web 應(yīng)用。以下是新手必學(xué)核心內(nèi)容:
一、Spring Boot 核心優(yōu)勢(shì)

二、5 分鐘創(chuàng)建第一個(gè) Web 應(yīng)用
步驟 1:使用 Spring Initializr 創(chuàng)建項(xiàng)目
訪問(wèn) start.spring.io 配置:
- Project: Maven
- Language: Java
- Spring Boot: 3.2.x
- Dependencies:
Spring Web - Packaging: Jar
點(diǎn)擊 “Generate” 下載項(xiàng)目壓縮包
步驟 2:項(xiàng)目結(jié)構(gòu)解析
src/ ├── main/ │ ├── java/ │ │ └── com/example/demo/ │ │ ├── DemoApplication.java // 啟動(dòng)類 │ │ └── controller/ // 控制器目錄 │ └── resources/ │ ├── static/ // 靜態(tài)資源(CSS/JS) │ ├── templates/ // 模板文件(Thymeleaf) │ └── application.properties // 配置文件 └── test/ // 測(cè)試代碼
步驟 3:編寫第一個(gè) REST 控制器
創(chuàng)建 HelloController.java:
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 標(biāo)記為 REST 控制器
public class HelloController {
@GetMapping("/hello") // 處理 GET 請(qǐng)求
public String sayHello() {
return "Hello Spring Boot Web!";
}
@GetMapping("/user")
public User getUser() {
return new User(1, "Alice"); // 自動(dòng)轉(zhuǎn)為 JSON
}
// 內(nèi)部用戶類
static class User {
private int id;
private String name;
// 構(gòu)造器 + Getter 省略(實(shí)際開(kāi)發(fā)需加上)
}
}
步驟 4:?jiǎn)?dòng)應(yīng)用
在 DemoApplication.java 右鍵選擇:
- Run As → Spring Boot App
- 或使用命令:
mvn spring-boot:run
控制臺(tái)出現(xiàn) Tomcat started on port 8080 表示成功
步驟 5:測(cè)試接口
打開(kāi)瀏覽器訪問(wèn):
- http://localhost:8080/hello → 顯示文本
- http://localhost:8080/user → 返回 JSON:
{"id":1, "name":"Alice"}
三、核心注解詳解
| 注解 | 作用 | 示例 |
|---|---|---|
| @RestController | 定義 REST 控制器 | 類注解 |
| @GetMapping | 處理 GET 請(qǐng)求 | @GetMapping("/path") |
| @PostMapping | 處理 POST 請(qǐng)求 | @PostMapping("/users") |
| @RequestMapping | 通用請(qǐng)求映射 | @RequestMapping("/api") |
| @RequestParam | 獲取 URL 參數(shù) | @RequestParam String name |
| @PathVariable | 獲取路徑變量 | @PathVariable int id |
| @RequestBody | 獲取請(qǐng)求體 JSON 數(shù)據(jù) | @RequestBody User user |
| @ResponseBody | 返回?cái)?shù)據(jù)而非視圖 | 方法或類注解 |
四、實(shí)現(xiàn) CRUD 接口示例
1. 創(chuàng)建用戶模型
public class User {
private Integer id;
private String name;
private String email;
// 構(gòu)造器 + Getter/Setter 省略
}
2. 實(shí)現(xiàn)控制器
@RestController
@RequestMapping("/api/users")
public class UserController {
// 臨時(shí)存儲(chǔ)(實(shí)際應(yīng)連接數(shù)據(jù)庫(kù))
private final List<User> users = new ArrayList<>();
private int nextId = 1;
// 創(chuàng)建用戶
@PostMapping
public User createUser(@RequestBody User user) {
user.setId(nextId++);
users.add(user);
return user;
}
// 獲取所有用戶
@GetMapping
public List<User> getAllUsers() {
return users;
}
// 獲取單個(gè)用戶
@GetMapping("/{id}")
public User getUserById(@PathVariable Integer id) {
return users.stream()
.filter(u -> u.getId().equals(id))
.findFirst()
.orElse(null); // 實(shí)際應(yīng)返回404
}
}
3. 使用 Postman 測(cè)試
POST http://localhost:8080/api/users
Body (JSON):
{"name": "Bob", "email": "bob@example.com"}
GET http://localhost:8080/api/users
返回:
[{"id":1, "name":"Bob", "email":"bob@example.com"}]
五、關(guān)鍵配置技巧
1. 修改端口號(hào)
src/resources/application.properties:
server.port=9090 # 修改為9090端口
2. 自定義返回 JSON 格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8
3. 開(kāi)啟熱部署(實(shí)時(shí)生效)
添加依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
六、調(diào)試與問(wèn)題排查
1. 查看自動(dòng)配置報(bào)告
啟動(dòng)時(shí)添加參數(shù):
java -jar demo.jar --debug
在日志中搜索 CONDITIONS EVALUATION REPORT
2. 常用端點(diǎn)監(jiān)控
# application.properties management.endpoints.web.exposure.include=*
訪問(wèn):http://localhost:8080/actuator
七、下一步學(xué)習(xí)建議
連接數(shù)據(jù)庫(kù)
- 添加
spring-boot-starter-data-jpa+ 數(shù)據(jù)庫(kù)驅(qū)動(dòng)
實(shí)現(xiàn)登錄認(rèn)證
- 學(xué)習(xí)
spring-boot-starter-security
前端整合
- 使用 Thymeleaf 或 Vue.js 整合
部署實(shí)戰(zhàn)
- 打包:
mvn clean package - 運(yùn)行:
java -jar target/demo-0.0.1-SNAPSHOT.jar
新手避坑提示:遇到問(wèn)題時(shí)先檢查:
- 注解是否遺漏(如 @RestController)
- 包結(jié)構(gòu)是否正確(控制器要在啟動(dòng)類同級(jí)或子目錄)
- 依賴是否完整(檢查 pom.xml)
以上就是SpringBoot快速搭建RESTful應(yīng)用的流程步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot搭建RESTful應(yīng)用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談Java變量賦值運(yùn)算符及相關(guān)實(shí)例
這篇文章主要介紹了Java賦值運(yùn)算符的一些知識(shí),需要的朋友可以參考下。2017-09-09
Java 求解如何把二叉搜索樹(shù)轉(zhuǎn)換為累加樹(shù)
這篇文章主要介紹了Java 求解把二叉搜索樹(shù)轉(zhuǎn)換為累加樹(shù)的代碼,總之需要觀察示例節(jié)點(diǎn)的規(guī)律,需要記錄上個(gè)節(jié)點(diǎn)的情況,注意引入前驅(qū)節(jié)點(diǎn)pre,具體實(shí)例代碼跟隨小編一起看看吧2021-11-11
Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)
今天帶大家復(fù)習(xí)Java的基礎(chǔ)知識(shí),文中有非常詳細(xì)的介紹及圖文示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
逆轉(zhuǎn)交替合并兩個(gè)鏈表的解析與實(shí)現(xiàn)
本篇文章主要介紹了將兩個(gè)鏈表逆轉(zhuǎn)交替合并的實(shí)現(xiàn)思路與方法,需要的朋友可以參考下2015-07-07
Java日期格式化的實(shí)現(xiàn)(@JsonFormat和@JSONField)
本文主要介紹了Java日期格式化的實(shí)現(xiàn),主要介紹了@JsonFormat和@JSONField兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05

