@RestController 是一个Spring框架中用于构建RESTful Web服务的注解。它是 @Controller 注解的变体,专门用于处理HTTP请求,尤其是用于构建RESTful风格的服务端点。
具体含义如下:
RESTful Web服务声明: @RestController 用于标识一个类,表示该类是一个控制器(Controller),但与传统的Spring MVC控制器不同,它专注于处理RESTful请求和响应。
自动序列化为JSON/XML: 方法在@RestController中默认返回的是数据,而不是视图。Spring自动将方法的返回值序列化为JSON或XML,并将其作为HTTP响应返回给客户端。这简化了编写RESTful服务的过程。
合并了@Controller和@ResponseBody的功能: 在传统的Spring MVC中,你可能会在Controller类上使用@Controller注解,并在处理方法上使用@ResponseBody注解。而使用@RestController相当于将这两个注解合并到一起,使代码更简洁。
简单示例:
java
Copy code
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyRestController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
在这个例子中,@RestController 注解表明 MyRestController 是一个RESTful控制器。@GetMapping("/hello") 表示处理GET请求的 /hello 路径,并返回字符串 "Hello, World!",这个字符串会被自动序列化为JSON或XML(根据客户端请求的内容类型而定)。