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方法的参数上。
以上是我对这些注解的认识,当然也会有些不足,希望对大家有所帮助!