@ResponseBody

作用:

  该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

  返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
@RequestMapping("/login")@ResponseBodypublic User login(User user){return user;}

User字段:userName pwd 那么在前台接收到的数据为:’{“userName”:“xxx”,“pwd”:“xxx”}’
效果等同于如下代码:

@RequestMapping("/login")public void login(User user, HttpServletResponse response){response.getWriter.write(JSONObject.fromObject(user).toString());}

@RestController

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

  1. 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

  2. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
    例如:

1.使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

若返回json等内容到页面,则需要加@ResponseBody注解

@CrossOrigin
@Controller
public class FileUploadController {//跳转到上传文件的页面
@RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
public String goUploadImg() {//跳转到 templates 目录下的 uploadimg.html
return "uploadimg";
}//处理文件上传
@RequestMapping(value="/testuploadimg", method = RequestMethod.POST)
public @ResponseBody String uploadImg(@RequestParam("file") MultipartFile file,
HttpServletRequest request) {System.out.println("调用文件上传方法");
String contentType = file.getContentType();
String fileName = file.getOriginalFilename();

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

@CrossOrigin
@RestController /* @Controller + @ResponseBody*/
public class HospitalController {//注入Service服务对象@Autowiredprivate HospitalService hospitalService;/*** 查询所有医院信息(未分页)*/@RequestMapping(value = "findAllHospital",method = RequestMethod.GET)public  List<Hospital> findAllHospital(){List<Hospital> hospitalList= hospitalService.findAllHospital();return hospitalList;}

spring-boot注解详解(二)相关推荐

  1. Spring Boot注解详解

    文章目录 使用注解的优势 注解详解(配备了完善的释义) 注解列表如下 JPA注解 springMVC相关注解 全局异常处理 项目中具体配置解析和使用环境 使用注解的优势 采用纯java代码,不在需要配 ...

  2. 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解

    <深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  3. Spring Boot 单元测试详解+实战教程

    转载自   Spring Boot 单元测试详解+实战教程 Spring Boot 的测试类库 Spring Boot 提供了许多实用工具和注解来帮助测试应用程序,主要包括以下两个模块. spring ...

  4. 全面的Spring Boot配置文件详解

    全面的Spring Boot配置文件详解 Spring Boot在工作中是用到的越来越广泛了,简单方便,有了它,效率提高不知道多少倍.Spring Boot配置文件对Spring Boot来说就是入门 ...

  5. Spring Boot 配置文件详解

    2019独角兽企业重金招聘Python工程师标准>>> 第二篇 : Spring Boot配置文件详解 文章首发于微信公众号<程序员果果> 地址:https://mp.w ...

  6. spring boot配置文件详解

    spring boot配置文件详解 application.properties是spring-boot的核心配置文件,这个配置文件基本可以取代我们ssm或者ssh里面的所有的xml配置文件. 当我们 ...

  7. 企业级 SpringBoot 教程 (二)Spring Boot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  8. (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  9. SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  10. Spring boot——Actuator 详解

    一.什么是 Actuator Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用. 这个 ...

最新文章

  1. 自动红眼移除算法 附c++完整代码
  2. Linux里新建文件/目录的默认权限
  3. JavaScript for…in vs for
  4. Orleans学习总结(二)--创建工程
  5. 微信小程序python token验证_微信小程序python 用户认证
  6. FastDFS分布式文件系统设计原理
  7. mysql查当前用户的的命令_mysql命令大全用户管理相关命令
  8. Elasticsearch 简介入门
  9. python同时发大量请求_Python批量发送post请求的实现代码
  10. 基于激光雷达的3D实时车辆跟踪
  11. php中strtotime函数,PHP中strtotime函数用法举例
  12. 【Docker】 for Mac 配置镜像加速器,加快镜像下载速度
  13. ASP.NET类计算机专业毕业设计题目选题课题
  14. SCI写作之方法部分method
  15. 51单片机的定时器/计数器
  16. docker虚拟化容器技术
  17. JS逆向之国家企业信用信息公示系统Cookie传递
  18. 彻底关闭华为系统更新教程,也可以激活系统更新,最全教程,亲测
  19. Mysql sql 对行数据求和
  20. 火爆全网的 Evil.js 源码解读

热门文章

  1. 在FSM模型中使用两态数据类型
  2. 时钟周期及秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)之间转换
  3. Keyboard驱动介绍
  4. 双亲委派机制_面试官:双亲委派机制的原理和作用是什么?
  5. java比ios慢_Android为什么比iOS慢
  6. 移动端 关闭浏览器事件_前端开发中什么是移动端点透事件?
  7. Unity将来时:IL2CPP是什么?
  8. b树索引 java_B树索引最通俗易懂的介绍
  9. 实验二:Linux下Xen环境的安装
  10. 第三课《让简历有点色彩》