@RestController

孟昊發表於2024-03-17

@RestController 是 Spring Framework 中的一個註解,主要用於標識一個類是 RESTful 服務的控制器(Controller)。在 Spring MVC 中,通常使用 @Controller 註解來定義控制器類,而 @RestController@Controller 的一個特殊版本,它結合了 @Controller@ResponseBody 註解的功能。

具體來說,@RestController 註解用於標識一個類是 RESTful 服務的控制器,其作用相當於 @Controller + @ResponseBody 的組合。這意味著使用 @RestController 註解標識的類中的方法返回的資料會直接寫入 HTTP 響應體中,而不會經過檢視解析器進行渲染。

基本上,如果一個 Spring MVC 控制器類主要用於返回 JSON/XML 等資料格式的 RESTful 服務,就應該使用 @RestController 註解來標識這個類,以確保返回的資料直接寫入 HTTP 響應體中。

示例程式碼如下:

javaCopy Code
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

在上面的示例中,HelloController 類使用 @RestController 註解標識,在 sayHello() 方法上使用 @GetMapping 註解來處理 GET 請求,並返回一個字串。由於類被標記為 @RestController,返回的字串會直接作為 HTTP 響應的內容返回給客戶端,而不會經過檢視解析器進行渲染。