SpringBoot 响应数据
2024-04-09 19:20:02  阅读数 1572

SpringBoot可以很方便地响应数据。

内容协商:

根据客户端接收能力的不同,返回不同类型的媒体数据。

1.响应Json数据

在方法上加上@ResponseBody,便可以给前端返回json数据。如下:

2.响应XML数据

1.首先要引入xml依赖:

这时我们发现上一节返回的person变成了xml格式,这是因为网页可接受类型xml要优先于json,因此当我们引入xml依赖,数据就响应为xml格式。这就是内容协商

3.通过开启浏览器参数方式来自己决定响应什么格式的数据

浏览器请求头无法修改,那么我们怎么自己决定想响应什么样的数据?

1.首先在核心配置文件application.yaml中开启基于请求参数的内容协商功能,如下

2.在请求时带上参数format,则可要求后端返回想要的数据,比如我现在想要json数据:

可见此时响应的就是json数据

4.编写一个自定义的converter,可以响应自定义的数据格式

比如我想向浏览器响应我自定义的数据格式:

1.自己写一个converter,实现HttpMessageConverter接口:

可以看到这个converter只支持Person类型

2.在getSupportedMediaTypes方法中声明此converter支持的文件格式。

3.在webconfig中将刚才写的类GuiMessageConverter引入

5.自定义内容协商策略