@RequestBody
是 Spring Boot 中的一個注解,它主要用于處理 HTTP 請求體中的數據。當客戶端發送請求時,請求體中的數據會被自動轉換為 Java 對象或者字符串等類型。這樣,開發者可以直接在控制器方法中處理請求體中的數據,而不需要手動解析請求體。
@RequestBody
的主要作用如下:
將請求體中的 JSON、XML 或其他格式的數據轉換為 Java 對象。這是通過 Spring Boot 的消息轉換器(Message Converters)實現的,例如 MappingJackson2HttpMessageConverter
用于處理 JSON 數據。
驗證請求體中的數據。可以使用 JSR-303(Java Bean Validation)標準來驗證數據的有效性。例如,可以檢查字段是否為空、長度是否符合要求等。
提高代碼的可讀性和可維護性。通過使用 @RequestBody
,可以清晰地看到哪些參數來自請求體,哪些參數來自其他部分(如 URL 參數、請求頭等)。
下面是一個簡單的示例,展示了如何在 Spring Boot 控制器中使用 @RequestBody
:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@PostMapping("/example")
public String handleRequest(@RequestBody MyRequestData requestData) {
// 處理請求體中的數據
return "Processed data: " + requestData.toString();
}
}
在這個示例中,MyRequestData
是一個 Java 類,用于表示請求體中的數據。當客戶端發送 POST 請求到 /example
時,請求體中的 JSON 數據會被自動轉換為 MyRequestData
對象。然后,控制器方法 handleRequest
會處理這個對象,并返回一個字符串作為響應。