@ResponseBody
@ResponseBody一般是加在方法上,将返回的对象解析成xml或者json,返回给请求的调用者。一般是用于服务之间的调用,或者前端请求后端时,使用ajax请求。
如果不加@ResponseBody,一般就是返回的url,而前端会跳转到这个url。SpringMVC会把该请求封装为ModelAndView返回给前端。
如下所示,请求返回的Product对象会被解析成json或者xml。
@Controller
@RequestMapping("/product")
public class ProductController {@RequestMapping(value="/get")@ResponseBodypublic Product getProduct(String id){Product product = ...; // 根据id获取商品return product; }
}
@RestController
@RestController是用在@Controller注解的类上,表示此类中所有的方法的返回都是解析成json或者xml。
框架在解析时,发现这个类上有@RestController注解时,就会把所有的方法的返回都解析成json或者xml。
相当于在类中的每个@RequespMapping注解的方法上都加了@ResponseBody。
如下所示
@RestController
@RequestMapping("/product")
public class ProductController {@RequestMapping(value="/get")public Product getProduct(String id){Product product = ...; // 根据id获取商品return product; }
}