首页 > 其他分享 >springboot接口接收xml

springboot接口接收xml

时间:2024-04-22 09:22:06浏览次数:15  
标签:xml String void 接口 XmlAttribute private public springboot

对xml文件的操作也可以借助hutoolXmlUtil.

1. xml格式

```xml
<root>
	<deviceStatInfo  onlineCount="64" offlineCount="2" errorCount="0"/>
	<data>
		<record id="0" name="5号楼10层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
		<record id="1" name="5号楼13层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
		<record id="2" name="5号楼16层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
		<record id="3" name="5号楼19层流量计" status="预警2/正常1/异常3" time="2024-04-10 12:30"/>
	</data>
</root>
```

2. 实体类

注意其中XmlElementWrapperXmlElement的位置

点击查看实体类
package com.tky.digital.twin.api.dto;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.List;

/**
 * @author codor
 * @date 2024/04/19 15:31
 */
@NoArgsConstructor
@AllArgsConstructor
@XmlRootElement(name = "root")
public class EquipmentWaterPipeStatusMessage implements Serializable {

    private static final long serialVersionUID = 1L;

//    @XmlAttribute
    private DeviceStatInfoDto deviceStatInfo;

//    @XmlAttribute
    private List<Record> data;

    @NoArgsConstructor
    @AllArgsConstructor
    public static class DeviceStatInfoDto implements Serializable {

        private int onlineCount;
        private int offlineCount;
        private int errorCount;

        @XmlAttribute
        public int getOnlineCount() {
            return onlineCount;
        }

        public void setOnlineCount(int onlineCount) {
            this.onlineCount = onlineCount;
        }

        @XmlAttribute
        public int getOfflineCount() {
            return offlineCount;
        }

        public void setOfflineCount(int offlineCount) {
            this.offlineCount = offlineCount;
        }

        @XmlAttribute
        public int getErrorCount() {
            return errorCount;
        }

        public void setErrorCount(int errorCount) {
            this.errorCount = errorCount;
        }
    }

    @NoArgsConstructor
    @AllArgsConstructor
    public static class Record implements Serializable {

        private String id;
        private String name;
        private String status;
        private String time;

        @XmlAttribute
        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        @XmlAttribute
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @XmlAttribute
        public String getStatus() {
            return status;
        }

        public void setStatus(String status) {
            this.status = status;
        }

        @XmlAttribute
        public String getTime() {
            return time;
        }

        public void setTime(String time) {
            this.time = time;
        }
    }

    @XmlElement(name = "deviceStatInfo")
    public DeviceStatInfoDto getDeviceStatInfo() {
        return deviceStatInfo;
    }

    public void setDeviceStatInfo(DeviceStatInfoDto deviceStatInfo) {
        this.deviceStatInfo = deviceStatInfo;
    }

    @XmlElementWrapper(name = "data")
    @XmlElement(name = "record")
    public List<Record> getData() {
        return data;
    }

    public void setData(List<Record> data) {
        this.data = data;
    }
}

3. 接口接收

@PostMapping(value = "/waterpipe", produces = {MediaType.APPLICATION_XML_VALUE})
public void waterpipe(@RequestBody EquipmentWaterPipeStatusMessage message) {
    System.out.println("JSONUtil.toJsonStr(message) = " + JSONUtil.toJsonStr(message));
}

标签:xml,String,void,接口,XmlAttribute,private,public,springboot
From: https://www.cnblogs.com/Ddlm2wxm/p/18149989

相关文章

  • 自动生成接口文档
    自动生成接口文档​ RESTframework可以自动帮我们生成接口文档。​ 接口文档以网页的形式呈现​ 自动接口文档能生成的是继承自APIView及其子类的视图使用步骤安装依赖​ RESTframework生成接口文档需要coreapi库的支持pipinstallcoreapi设置接口文档访问路径​ 需......
  • 【SpringBoot】【一】初识数据源连接池
    1 前言上节我们看了看,SpringBoot启动后都有哪些线程,看到有一部分是关于数据源连接池的,那么这节我们就看看数据源连接池都是如何工作的。我们本节就从这两个问题看起:(1)连接池是如何创建的,也就是什么时候创建的呢?(2)连接是什么时候放进连接池的?是创建完就初始化了一批新的连接,还......
  • dist资源包放入springboot运行遇到的问题
    1、在vue、react使用npmrunbuild打包将dist包放入resources下2、通过浏览器访问本地在访问路径会出现404,打开dist包下的index.html发现打包后的指向样式不对,更改指向后,发现还是404把拦截器修改为排除所有路径后,页面不再404,说明资源没有显示。修改资源静态映射指向dis......
  • Reddit采集API reddit文章评论和搜索 实时数据接口
    近期调研发现iDataRiver平台https://www.idatariver.com/zh-cn/提供开箱即用的Reddit数据采集API,是目前用下来最方便简单的API,可以抓取reddit公开数据,例如subreddit中的帖子、按关键字搜索以及文章评论等,供用户按需调用。接口使用详情请参考RedditAPI接口接口列表1.获......
  • RPC接口和http接口的区别
    最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更胜一筹RPC服务RPC架构一个完整的RPC架构里面包含了四个核心的组件,分别是Client,Server,ClientStub以及ServerStub,这个S......
  • 短链接口设计&禁用Springboot执行器端点/env的安全性
    短链接口设计//短链接服务跳转方式,实现短链接转长链接的请求。@GetMapping("/{code}")publicStringredirectUrl(@PathVariable("code")Stringcode){return"redirect:"+shortUrl.getLongUrl();}禁用Springboot执行器端点/env的安全性#关闭健康检查不安全接口end......
  • 基于SpringBoot+Vue毕业生信息招聘平台系统
    需求分析3.1技术可行性:技术背景毕业生信息招聘平台是在Windows操作系统中进行开发运用的,而且目前PC机的各项性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。系统的开发环境和配置都是可以自行安装的,系统使用Java开......
  • 计算机毕业设计源码-基于 SpringBoot 开发的班级综合测评系统研究与实现
    技术栈开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9浏览器:谷歌浏览器3.需求分析用户需求分析根据账号登陆进入班级综合测评管理系统,系统根据角色展示相应......
  • 抽象类和接口有什么区别
    接口和抽象类都是用来定义对象的公共行为的,两者本身不能实例化,但二者有以下7点不同:1.定义关键字不同:接口使用关键字interface来定义,抽象类使用关键字abstract来定义。2.继承或实现的关键字不同:接口使用implements关键字定义其具体实现,抽象类使用extends关键字实现继承。......
  • 泛型模板化设计使用-订单搜索接口
    泛型模板化设计使用-订单搜索接口1.定义订单搜索接口packagecom.example.core.mydemo.java.templateQuery;//暂不使用该接口//publicinterfaceSearchService<TextendsBaseRequest,FextendsBaseResponse>{publicinterfaceSearchService<T,F>{/***订单......