跳到主要内容

简述@ResponseBody注释在Spring MVC中起什么作用?

参考答案:

在Spring MVC中,@ResponseBody注解的作用主要是用来告诉Spring框架,该方法返回的结果需要直接写入到HTTP响应的body中,而不需要通过视图解析器进行解析。

这通常用于返回JSON、XML或其他自定义格式的数据。当你想要从控制器方法直接返回JSON或XML等数据,而不是通过视图(如JSP页面)来渲染这些数据时,就可以使用@ResponseBody注解。

例如,假设你有一个方法需要返回一个JSON对象,你可以这样写:

@RequestMapping(value = "/getData", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getData() {
    Map<String, Object> data = new HashMap<>();
    data.put("key1", "value1");
    data.put("key2", "value2");
    return data;
}

在这个例子中,getData方法返回的是一个Map对象。当这个方法被调用时,Spring会直接将这个Map对象转换成JSON格式,并写入到HTTP响应的body中。

需要注意的是,如果你正在使用@RestController注解,那么就不需要再在方法上使用@ResponseBody注解了,因为@RestController已经包含了@ResponseBody的功能。