一、@Controller 注解:
@Controller 注解用于定義一個控制器類,通常配合 Spring MVC 框架使用。
控制器類負責處理用戶的 HTTP 請求,并將處理結果返回給客戶端。
控制器類中的方法通常通過 @RequestMapping 或其衍生注解來映射特定的 URL 請求路徑和 HTTP 方法。
返回的結果可以是一個視圖名稱,框架會根據視圖解析器將其解析為具體的視圖頁面。
二、@RestController 注解:
@RestController 注解是 @Controller 的增強版,專門用來構建 RESTful API。
與 @Controller 不同的是,@RestController 注解的類中的每個方法都默認返回 JSON、XML 或其他數據類型,而不是視圖。
在 Spring MVC 中,使用 @RestController 相當于在每個方法上都添加了 @ResponseBody 注解,用于直接返回數據對象或集合,而不是視圖。
三、區別:
-
請求處理方式:
@Controller
?通常用于傳統的 Web 應用開發,負責處理 HTTP 請求,并返回視圖頁面。@RestController
?則專門用于構建 RESTful API,處理 HTTP 請求,并直接返回數據對象或集合,而不是視圖。
-
返回結果類型:
@Controller
?返回的結果通常是視圖名稱,框架會將其解析為具體的視圖頁面。@RestController
?返回的結果默認是 JSON、XML 或其他數據類型,而不是視圖。