Java面试题:Spring里面的@RestController和@ResponseBody有什么作用?

@ResponseBody

@ResponseBody一般是加在方法上,将返回的对象解析成xml或者json,返回给请求的调用者。一般是用于服务之间的调用,或者前端请求后端时,使用ajax请求。
如果不加@ResponseBody,一般就是返回的url,而前端会跳转到这个url。SpringMVC会把该请求封装为ModelAndView返回给前端。
如下所示,请求返回的Product对象会被解析成json或者xml。

@Controller
@RequestMapping("/product")
public class ProductController {
	@RequestMapping(value="/get")
    @ResponseBody
    public 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; 
    }
}
  • 15
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值