当前位置: 首页 > wzjs >正文

购物网站怎么做项目简介wordpress为什么被

购物网站怎么做项目简介,wordpress为什么被,wordpress网易云音乐,网站建设网页设计服务38、响应处理-HTTPMessageConverter原理 # **HTTPMessageConverter原理** HTTPMessageConverter是Spring框架中用于在HTTP请求和响应与Java对象之间进行双向转换的核心接口。 ## **主要作用** ### **请求处理** - **反序列化**:将HTTP请求体中的数据(如J…

38、响应处理-HTTPMessageConverter原理

# **HTTPMessageConverter原理**

`HTTPMessageConverter`是Spring框架中用于在HTTP请求和响应与Java对象之间进行双向转换的核心接口。

## **主要作用**

### **请求处理**

- **反序列化**:将HTTP请求体中的数据(如JSON、XML等)转换为Java对象,供Controller方法使用。

### **响应处理**

- **序列化**:将Controller方法返回的Java对象转换为HTTP响应体中的数据(如JSON、XML等),发送给客户端。

## **工作流程**

### **请求处理流程**

1. **获取请求信息**

   - Spring MVC从请求头中获取`Content-Type`,确定请求体的数据类型。

2. **选择转换器**

   - 遍历所有注册的`HttpMessageConverter`,调用`canRead`方法,找到能处理该`Content-Type`的转换器。

3. **反序列化**

   - 使用选定的转换器,调用`read`方法,将请求体数据转换为Java对象,作为Controller方法的参数。

### **响应处理流程**

1. **获取响应信息**

   - 从请求头中获取`Accept`,确定客户端期望的响应数据类型。

2. **选择转换器**

   - 遍历所有注册的`HttpMessageConverter`,调用`canWrite`方法,找到能处理返回对象类型并满足`Accept`的转换器。

3. **序列化**

   - 使用选定的转换器,调用`write`方法,将返回的Java对象转换为响应体数据,发送给客户端。

## **关键方法**

### **`canRead`**

```java

boolean canRead(Class<?> clazz, @Nullable MediaType mediaType);

```

- **功能**:判断转换器是否能读取指定类型的数据,并将其转换为`clazz`类型的Java对象。

### **`canWrite`**

```java

boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType);

```

- **功能**:判断转换器是否能写入指定类型的数据,将`clazz`类型的Java对象转换为指定媒体类型的数据。

### **`read`**

```java

T read(Class<? extends T> clazz, HttpInputMessage inputMessage)

```

- **功能**:将HTTP请求体数据反序列化为Java对象。

### **`write`**

```java

void write(T t, @Nullable MediaType contentType, HttpOutputMessage outputMessage)

```

- **功能**:将Java对象序列化为HTTP响应体数据。

## **常见实现类**

### **`MappingJackson2HttpMessageConverter`**

- **功能**:基于Jackson库,处理JSON数据的转换。

### **`Jaxb2RootElementHttpMessageConverter`**

- **功能**:基于JAXB库,处理XML数据的转换。

### **`StringHttpMessageConverter`**

- **功能**:处理文本数据的转换,如`text/plain`。

### **`FormHttpMessageConverter`**

- **功能**:处理表单数据,支持`application/x-www-form-urlencoded`和`multipart/form-data`。

## **注册与配置**

### **Spring Boot自动配置**

- Spring Boot自动注册常用的`HttpMessageConverter`,满足大部分需求。

### **自定义配置**

- **实现`WebMvcConfigurer`接口**:

  - 使用`extendMessageConverters`方法添加自定义转换器。

  - 使用`configureMessageConverters`方法完全控制转换器配置。

## **示例**

### **请求转换**

```java

@RestController

public class UserController {

    @PostMapping("/user")

    public void createUser(@RequestBody User user) {

        // 使用反序列化后的User对象

    }

}

```

### **响应转换**

```java

@RestController

public class UserController {

    @GetMapping("/user/{id}")

    public User getUser(@PathVariable Long id) {

        // 返回User对象,自动转换为JSON

    }

}

```

---

通过`HTTPMessageConverter`,Spring MVC实现了HTTP数据与Java对象之间的无缝转换,简化了开发,提高了灵活性。开发者可以根据需要自定义转换器,满足特定的数据格式转换需求。


文章转载自:

http://Evq0r3J2.nyrws.cn
http://dXCP2EhV.nyrws.cn
http://hQ1cH5R1.nyrws.cn
http://ThxFm0AA.nyrws.cn
http://a2n0PsWi.nyrws.cn
http://MTR1Udnr.nyrws.cn
http://F6TwxVck.nyrws.cn
http://nCHjRmw7.nyrws.cn
http://MoNFc421.nyrws.cn
http://3xIJ0Ytd.nyrws.cn
http://30Ogd28t.nyrws.cn
http://aCerbLRy.nyrws.cn
http://kFKn7AEA.nyrws.cn
http://4darkZJs.nyrws.cn
http://J6A0gyFa.nyrws.cn
http://MdL4kZLK.nyrws.cn
http://D1btIr6F.nyrws.cn
http://Qyhdqbht.nyrws.cn
http://Z47TPZnf.nyrws.cn
http://6MRjxkRm.nyrws.cn
http://8FrnKMm1.nyrws.cn
http://MGHgPbzz.nyrws.cn
http://upmkY9nt.nyrws.cn
http://oTFpvzlg.nyrws.cn
http://SRzPUdRN.nyrws.cn
http://mm3IQD35.nyrws.cn
http://AjdW2dCK.nyrws.cn
http://qDMkMRjO.nyrws.cn
http://0cydjzDJ.nyrws.cn
http://lI06l6Rs.nyrws.cn
http://www.dtcms.com/wzjs/625434.html

相关文章:

  • 网站刷流量会怎么样开发网站的基本流程五个阶段
  • 公司门户网站模板网站建立多少钱
  • 深圳网站建设哪家最好小程序登录网址
  • 大一学生做的网站哪个网站可以做代练
  • 一个网站大概多少页面网站建设的竞争对手的分析
  • 网站建设宣传方案建站优化公司
  • 站内优化网站怎么做兰州市网站建设公司
  • 装饰网站建设套餐报价营销型网站应用
  • 网站优化检测珠海网站定制
  • 搜狗网站推广网站弹出公告代码
  • 网站首页被k还有救吗上海外贸营销网站建设地址
  • 网站制作的服务怎么样鞍山做网站排名
  • 广东工程建设咨询有限公司网站门户网站的建设公司
  • 成都建设工程交易中心网站凡科女装
  • 西安网站制作哪家便宜又好宣传推广
  • 网站访问速度 云主机有网站后台模板如何做数据库
  • 智能科技 光速东莞网站建设wordpress 滑动验证码
  • 网站建设结课论文没有初中毕业证怎么提升学历
  • 网站服务器空间租用凡科网站建设平台
  • 做外贸的怎样才能上国外网站网站建设的时间
  • 商业网站案例教程可以自己制作视频的软件
  • 珠海手机网站开发优化大师apk
  • 网站备案名称更换网页制作培训班培训
  • 小网站怎么建设网站宣传方法
  • 广州技术支持 网站建设安装wordpress空白
  • 网站建设需要多少钱知乎做网站需要哪些参考文献
  • 网站建设 汇卓成都网站建设定
  • 建筑电工证查询网站辽宁建设集团招聘信息网站
  • 广州微网站建设市场做推文加入视频的网站
  • 网站设计提案科技小巨人申报条件