在 RESTful 架构中,通常返回的是 JSON 或 XML,不再是一个完整的页面。
其中很重要的两个注解:@RestController 相当于 @Controller 和 @ResponseBody 的结合。当在一个类上使用 @RestController 时,它会告诉 Spring 这个类中所有方法的返回值都应该被直接写入 HTTP 响应体中,而不再被解析为视图。
@ResponseBody 可以用在方法级别,作用相同。它标志着该方法的返回值将作为响应体内容,Spring 会跳过视图解析的步骤。
HttpMessageConverter 是实现 RESTful 风格的关键。当 Spring 检测到 @ResponseBody 注解时,它会使用 HttpMessageConverter 来将 Controller 方法返回的 Java 对象序列化成指定的格式,如 JSON。
默认情况下,如果类路径下有 Jackson 库,Spring Boot 会自动配置 MappingJackson2HttpMessageConverter 来处理 JSON 的转换。相应的,对于带有 @RequestBody 注解的方法参数,它也会用这个转换器将请求体中的 JSON 数据反序列化成 Java 对象。
