郑州网约车平台,搜索引擎优化特点,网站开发需要多少行代码,游戏推广代理平台学无止境#xff0c;气有浩然! Spring Boot接收xml参数 前言方案实现代码示例 打完收工#xff01; 前言
最近工作又要做挡板#xff0c;挡板的东西有点多#x1f600;#xff0c;主要是因为下游是第三方收费的#xff0c;提供的测试环境的数据不能随心所欲修改#xf… 学无止境气有浩然! Spring Boot接收xml参数 前言方案实现代码示例 打完收工 前言
最近工作又要做挡板挡板的东西有点多主要是因为下游是第三方收费的提供的测试环境的数据不能随心所欲修改只能通过挡板模拟。 这次的第三方下游系统也是通过xml进行传输的不过这次是通过http协议的post请求请求体是xml协议。 方案 当然我们可以通过接受这个请求体然后把他变成转换成我们需要的bean处理结果之后再将bean转换为xml字符串传递回去。 虽然是个笨办法也是可以实现的。本次记录的是利用Spring Boot的自动转换来进行实现会自动将请求体转换为bean并且将bean转为xml自动返回。
秘诀就是RequestBody
他会自动帮你转换成bean,但是需要引入相关依赖就是之前博客提到的 Spring boot项目java bean和xml互转
实现
当按照上篇博客介绍的一切准备就绪之后就会进行自动转换。
代码示例
Controller PostMapping(value /test, produces {MediaType.APPLICATION_XML_VALUE})public ResponseEntityResultDto test(RequestBody RequestDto requestDto) {return ResponseEntity.ok(testService.test(requestDto));} POJO 请求 Setter
XmlRootElement(nameRequest)
public class RequestDto {private String name;private String password;private String mobile;private String idCard;XmlAttributepublic String getName() {return name;}XmlAttributepublic String getPassword() {return password;}XmlAttributepublic String getMobile() {return mobile;}XmlAttributepublic String getIdCard() {return idCard;}
}响应
Setter
XmlRootElement(name Response)
public class ResultDto {private String reason;private String retCode;private String errMsg;XmlAttributepublic String getReason() {return reason;}XmlAttributepublic String getRetCode() {return retCode;}XmlAttributepublic String getErrMsg() {return errMsg;}
}说明 RequestBody会根据配置的XML之前博客提到的自动解析成所需要的bean。这里用到的是jax。由于我需要的报文全是配置在方法体里的所以全部使用的XmlAttribute。返回的报文也需要返回xml报文的所以我们需要使响应response的content-type也是xml。这个时候就需要在PostMapping的produces设置为XML也就是MediaType.APPLICATION_XML_VALUE。他会根据配置的xml将bean自动转换。 打完收工