ResponseEntity 是 org.springframework.http 包中的一个类,它代表了完整的 HTTP 响应,包括状态码、头部信息和响应体。当我们的控制器方法返回一个 ResponseEntity 时,Spring 会利用我们提供的信息来构建最终发送给客户端的 HTTP 响应。
它允许开发者:
- 定义 HTTP 状态码(例如:200 OK, 404 Not Found, 500 Internal Server Error)
- 设置自定义头部信息(例如:Content-Type, Cache-Control, Authorization)
- 包含响应体(JSON, XML, 纯文本等)
ResponseEntity 的组成部分
1. HTTP 状态码
指示 HTTP 请求的结果。一些常用的代码包括:
- 200 OK: 请求处理成功
- 201 Created: 创建了一个新资源
- 204 No Content: 请求成功,但没有响应体
- 400 Bad Request: 无效或格式错误的请求
- 404 Not Found: 未找到请求的资源
- 500 Internal Server Error: 服务器处理请求失败
2. HTTP 头部
头部提供了关于响应的元数据。常见的头部包括:
- Content-Type: 定义响应的格式(例如 application/json)
- Authorization: 用于发送身份验证凭据
- Custom Headers (自定义头部): 开发者可以定义自定义头部(例如 X-Custom-Header)
示例:
> .header("Custom-Header", "CustomValue")
3. 响应体
响应体包含响应的主要内容。它可以是:
- 代表请求数据的 JSON 对象
- 描述操作结果的纯文本消息
- 如果返回页面,则为 HTML 内容
- 如果不需要响应内容,则为空
实战演练:在 Spring Boot 中使用 ResponseEntity
步骤 1:创建一个 Spring Boot 项目
使用 IntelliJ IDEA 或 Spring Initializr 创建一个新的 Spring Boot 项目。
- Name (项目名称): response-entity-example
- Language (语言): Java
- Type (类型): Maven
- Packaging (打包方式): Jar
!project metadata在 Intellij 中创建项目
Project Structure (项目结构):
!Project Structure项目结构
步骤 2:添加依赖项
在 pom.xml 文件中添加所需的依赖项。
>
>
>
>
> org.springframework.boot
>
> spring-boot-starter-web
>
>
>
>
>
> org.springframework.boot
>
> spring-boot-devtools
>
> runtime
>
> true
>
>
>
>
>
> org.projectlombok
>
> lombok
>
> true
>
>
>
>
>
> org.springframework.boot
>
> spring-boot-starter-test
>
> test
>
>
>
>
步骤 3:创建控制器类
示例控制器:
Java
CODEBLOCK_8d1f4d21
- successResponse(): 返回带有成功消息的 HTTP 200 OK。
- notFoundResponse(): 当资源不可用时返回 HTTP 404 Not Found。
- customHeaderResponse(): 返回 HTTP 200 OK 并向响应中添加了自定义头部。
步骤 4:主应用程序类
Java
CODEBLOCK_ba702da6
步骤 5:运行应用程序
运行该项目。然后,我们可以使用浏览器或 Postman 等工具访问上述端点来测试响应。