如何使用 Java 的 Spring Boot 创建一个 RESTful API?

ops/2025/1/16 15:31:08/

大家好,我是 V 哥,使用 Java 的 Spring Boot 创建 RESTful API 可以满足多种开发场景,它提供了快速开发、易于配置、可扩展、可维护的优点,尤其适合现代软件开发的需求,帮助你快速构建出高性能的后端服务。例如,在企业级应用中,通常需要开发大量的业务功能,并且要求系统具有可扩展性、可维护性和高可用性。Spring Boot 结合 Spring 生态系统的其他组件(如 Spring Security 用于安全,Spring Data 用于数据访问)可以快速构建出强大的企业级应用,通过 RESTful API 对外提供服务,满足企业内部或外部的业务需求。

以下是使用 Java 的 Spring Boot 创建一个 RESTful API 的步骤:

一、创建 Spring Boot 项目

  1. 打开 IDE(如 IntelliJ IDEA 或 Eclipse)。
  2. 选择创建一个新的 Spring Boot 项目。
  3. 在项目创建向导中,选择 Spring Web 依赖。这将包含创建 RESTful API 所需的基本依赖,如 Spring MVC 等。

二、创建控制器类(Controller Class)

src/main/java 目录下创建一个新的 Java 类,例如 UserController.java

java">import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/api/users")
public class UserController {@GetMapping("/")public String getUsers() {return "Hello, Users!";}
}

代码解释:

  • @RestController 注解将这个类标记为一个控制器,并且该类中的方法返回的数据将直接作为 HTTP 响应的内容,而不是视图名称。
  • @RequestMapping("/api/users") 为这个控制器中的所有请求映射了一个基础路径 /api/users
  • @GetMapping("/") 表示该方法将处理 GET 请求,并且该请求的路径是 /api/users/(因为 @RequestMapping 中已经设置了基础路径)。

三、运行项目

运行 Spring Boot 应用程序的主类,通常是带有 @SpringBootApplication 注解的类,例如:

java">import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

代码解释:

  • @SpringBootApplication 是一个组合注解,包含了 @Configuration@EnableAutoConfiguration@ComponentScan。它启用了 Spring 的自动配置功能,并扫描当前包及其子包下的组件。
  • SpringApplication.run(Application.class, args); 启动 Spring Boot 应用程序,Application.class 是启动类的类名,args 是命令行参数。

四、测试 API

打开浏览器或者使用工具(如 Postman),访问 http://localhost:8080/api/users/,你将看到 Hello, Users! 的消息。

五、添加更多的 API 端点

你可以在 UserController 中添加更多的方法,例如:

java">import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/api/users")
public class UserController {@GetMapping("/")public String getUsers() {return "Hello, Users!";}@GetMapping("/{id}")public String getUserById(@PathVariable Long id) {return "User with id: " + id;}@PostMapping("/")public String createUser(@RequestBody String user) {return "Creating user: " + user;}@PutMapping("/{id}")public String updateUser(@PathVariable Long id, @RequestBody String user) {return "Updating user with id: " + id + " with " + user;}@DeleteMapping("/{id}")public String deleteUser(@PathVariable Long id) {return "Deleting user with id: " + id;}
}

代码解释:

  • @GetMapping("/{id}"):处理 GET 请求,路径中的 {id} 是一个路径变量,使用 @PathVariable 注解将其绑定到方法参数 id 上。
  • @PostMapping("/"):处理 POST 请求,@RequestBody 注解将请求体中的数据绑定到方法参数 user 上。
  • @PutMapping("/{id}"):处理 PUT 请求,可用于更新资源。
  • @DeleteMapping("/{id}"):处理 DELETE 请求,可用于删除资源。

六、配置应用程序属性(可选)

你可以在 src/main/resources/application.propertiesapplication.yml 文件中配置应用程序的属性,例如设置服务器端口:

application.properties

server.port=8081

application.yml

server:port: 8081

七、添加服务层和数据访问层(可选)

为了使应用程序更加完善,可以添加服务层(Service)和数据访问层(Repository)。以下是一个简单的示例:

UserService.java

java">import org.springframework.stereotype.Service;@Service
public class UserService {public String getUserById(Long id) {return "User with id: " + id;}
}

UserController.java

java">import org.springframework.beans.factory.annotation.Autowired;
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
@RequestMapping("/api/users")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public String getUserById(@PathVariable Long id) {return userService.getUserById(id);}
}

代码解释:

  • @Service 注解将 UserService 标记为一个服务组件。
  • @Autowired 注解将 UserService 注入到 UserController 中,使得控制器可以调用服务层的方法。

通过上述步骤,你可以熟悉 Java 的 Spring Boot 创建一个基本的 RESTful API,你学肥了吗,关注威哥爱编程,全栈开发你就行。


http://www.ppmy.cn/ops/150587.html

相关文章

模之屋模型导入到UE5

去模之屋随便下个模型 安装Blender2.8 插件 cats-blender-plugin , 打开blender 2.8转换 pmx转换fbx https://github.com/absolute-quantum/cats-blender-plugin Index of /release/Blender2.80/ 修改单位 修复贴图 更高清了 点fix model 修复模型 改为编辑模式…

升级 SpringBoot3 全项目讲解 — 为什么 SpringBoot3 应该抛弃 Maven,搭配 Gradle 来使用?

学会这款 🔥全新设计的 Java 脚手架 ,从此面试不再怕! 随着 Spring Boot 3 的发布,许多开发者开始考虑如何将现有项目升级到最新版本。Spring Boot 3 带来了许多新特性,包括对 Java 17 的支持、更好的性能优化以及对 G…

设计模式--命令模式【行为型模式】

设计模式的分类 我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类: 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式(7 种)&#xff1…

EasyLine(v2.0)自制光谱、曲线处理软件

前言:因为这次更新对软件的整体变动较大,所以就没有取版本v1.1,而是直接使用v2.0版本。然后上一版的讲解也不是很清楚,这次也做重点讲解一下。 自制光谱、曲线处理软件-EasyLine 软件的安装软件的使用总体介绍文件格式处理的使用 …

Flutter中Get.snackbar和Get.dialog关闭冲突问题记录

背景: 在使用GetX框架时,同时使用了Get.snackbar提示框和Get.dialog加载框,当这两个widget同时存在时,Get.dialog加载框调用Get.back()无法正常关闭。 冲突解释: 之所以会产生冲突,是因为Get.snackbar在关…

8.User-Agnet代理池

在编写爬虫程序时,一般都会构建一个 User-Agent (用户代理)池,就是把多个浏览器的 UA 信息放进列表中,然后再从中随机选择。构建用户代理池,能够避免总是使用一个 UA 来访问网站,因为短时间内总…

Linux根据Sql文件导入Mysql数据库

在Linux环境下,根据SQL文件导入MySQL数据库可以按照以下步骤进行: 1. 确保MySQL服务正在运行 首先,确保MySQL服务正在运行。你可以使用以下命令来检查MySQL服务的状态(以Ubuntu为例): sudo systemctl st…

【Vim Masterclass 笔记12】S06L26 + L27:Vim 文本的搜索、查找及替换同步练习(含点评课)

文章目录 S06L26 Exercise 07 - Search, Find, and Replace1 训练目标2 操作指令2.1. 打开 search-practice.txt 文件2.2. 同一行内的搜索练习2.3. 当前文件内的搜索练习2.4. 单词搜索练习2.5. 全局替换练习 3 退出 Vim S06L27 同步练习点评课 写在前面 Vim 的文本检索、查找与…