@RestController
注解相当于@Controller和@Responsebody合在一起的功能
@Responsebody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
这个注解表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用。
@Controller
用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller对象
你无需继承特定的类或实现特定的接口,只需使用@Controller标记一个类是Controller,然后使用@RequestMapping和@RequestParam等一些注解用以定义URL 请求和Controller方法之间的映射,这样的Controller就能被外界访问到
历史问题:
@RestController注解是它继承自@Controller注解。Spring 4.0之前的版本,spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet。
使用时机:
返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;