@Reference与@Autowired;@RestController与@Controller;@ResponseBody与@RequestBody的区别

  • Post author:
  • Post category:其他



1.首先来说@Reference和@Autowired的区别


总的来说他们的区别:

@Reference注入的是分布式中的远程服务对象,需要dubbo配置使用

@Resource和@Autowired注入的是本地spring容器中的对象。



2.再说说@RestController与@Controller区别


@RestController 相当于 @ResposeBody + @Controller 合在一起的作用

1).使用@Controller 注解,

在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

2)@RestController注解

相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面



3.最后谈谈@ResponseBody与@RequestBody的区别


@ResponseBody 作用:@ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。

@RequestBody

作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容(json数据)转换为java对象并绑定到Controller方法的参数上。

以上是我对这些注解的认识,当然也会有些不足,希望对大家有所帮助!



版权声明:本文为apache_ant原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。