项目的包结构

配置文件配置信息【application.yml】

丰桥月结卡号自己去注册

配置文件中的配置信息的获取代码

package com.test.demo.express.config;import org.springframework.boot.context.properties.ConfigurationProperties;/*** @Author: * @Date: 2018/10/22 18:13* @Description:*/
@ConfigurationProperties(prefix = "sf.route.express")
public class SfExpressProperties {private String clientCode;private String checkWord;private String reqURL;private String expressName;public String getClientCode() {return clientCode;}public void setClientCode(String clientCode) {this.clientCode = clientCode;}public String getCheckWord() {return checkWord;}public void setCheckWord(String checkWord) {this.checkWord = checkWord;}public String getReqURL() {return reqURL;}public void setReqURL(String reqURL) {this.reqURL = reqURL;}public String getExpressName() {return expressName;}public void setExpressName(String expressName) {this.expressName = expressName;}@Overridepublic String toString() {return "SfExpressProperties{" +"clientCode='" + clientCode + '\'' +", checkWord='" + checkWord + '\'' +", reqURL='" + reqURL + '\'' +", expressName='" + expressName + '\'' +'}';}
}

参数封装

package com.test.demo.express.sf.param;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;/*** @Author: * @Date: 2018/10/18 17:27* @Description:*/
@ApiModel(value = "SfTracesParam")
public class SfTracesParam {@ApiModelProperty(value = "快递单号")private String wayBillNo;@ApiModelProperty(value = "订单编号")private String orderSn;public String getWayBillNo() {return wayBillNo;}public void setWayBillNo(String wayBillNo) {this.wayBillNo = wayBillNo;}public String getOrderSn() {return orderSn;}public void setOrderSn(String orderSn) {this.orderSn = orderSn;}@Overridepublic String toString() {return "SfTracesParam{" +"wayBillNo='" + wayBillNo + '\'' +", orderSn='" + orderSn + '\'' +'}';}
}

返回值封装

这里的返回值,就是我们调用顺丰的接口返回的路由信息XLM文件,经过xmlutil.java解析以后对应的字段。

为封装成对象返回json做准备。

package com.test.demo.express.sf.dto;import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;/*** @Author:* @Date: 2018/10/18 0:12* @Description:*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "Response")
public class SfExpressResponseDTO implements Serializable{private static final long serialVersionUID = 1L;/*** 响应状态*/@XmlElement(name = "Head")private String Head;/*** 响应结果*/@XmlElement(name = "Body")private Body Body;/*** 快递公司名称*/private String expressName;/*** 快递单号*/private String wayBillNo;/*** 订单号*/private String orderSn;@XmlAccessorType(XmlAccessType.NONE)public static class Body {/*** 响应的物流信息*/@XmlElement(name = "RouteResponse")private RouteResponse RouteResponse;public SfExpressResponseDTO.RouteResponse getRouteResponse() {return RouteResponse;}public void setRouteResponse(SfExpressResponseDTO.RouteResponse routeResponse) {RouteResponse = routeResponse;}@Overridepublic String toString() {return "Body{" +"RouteResponse=" + RouteResponse +'}';}}@XmlRootElement(name="RouteResponse")@XmlAccessorType(XmlAccessType.NONE)public static class RouteResponse {/*** 运单号*/@XmlAttribute(name = "mailno")private String mailNo;/*** 订单号*/@XmlAttribute(name = "orderid")private String orderid;/*** 路由*/@XmlElement(name = "Route")private List<Route> Route ;public String getMailNo() {return mailNo;}public void setMailNo(String mailNo) {this.mailNo = mailNo;}public String getOrderid() {return orderid;}public void setOrderid(String orderid) {this.orderid = orderid;}public List<SfExpressResponseDTO.Route> getRoute() {return Route;}public void setRoute(List<SfExpressResponseDTO.Route> route) {Route = route;}@Overridepublic String toString() {return "RouteResponse{" +"mailNo='" + mailNo + '\'' +", orderid='" + orderid + '\'' +", Route=" + Route +'}';}}@XmlRootElement(name="Route")@XmlAccessorType(XmlAccessType.NONE)public static class Route {/*** 路由节点发生的时间*/@XmlAttribute(name = "accept_time")private String acceptTime;/*** 路由节点标识描述*/@XmlAttribute(name = "remark")private String remark;/*** 路由节点地址描述*/@XmlAttribute(name = "accept_address")private String accept_address;/*** 路由节点操作码*/@XmlAttribute(name = "opcode")private String opcode;public String getAcceptTime() {return acceptTime;}public void setAcceptTime(String acceptTime) {this.acceptTime = acceptTime;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}public String getOpcode() {return opcode;}public void setOpcode(String opcode) {this.opcode = opcode;}public String getAccept_address() {return accept_address;}public void setAccept_address(String accept_address) {this.accept_address = accept_address;}@Overridepublic String toString() {return "Route{" +"acceptTime='" + acceptTime + '\'' +", remark='" + remark + '\'' +", accept_address='" + accept_address + '\'' +", opcode='" + opcode + '\'' +'}';}}public static long getSerialVersionUID() {return serialVersionUID;}public String getHead() {return Head;}public void setHead(String head) {Head = head;}public SfExpressResponseDTO.Body getBody() {return Body;}public void setBody(SfExpressResponseDTO.Body body) {Body = body;}public String getExpressName() {return expressName;}public void setExpressName(String expressName) {this.expressName = expressName;}public String getWayBillNo() {return wayBillNo;}public void setWayBillNo(String wayBillNo) {this.wayBillNo = wayBillNo;}public String getOrderSn() {return orderSn;}public void setOrderSn(String orderSn) {this.orderSn = orderSn;}@Overridepublic String toString() {return "SfExpressResponseDTO{" +"Head='" + Head + '\'' +", Body=" + Body +", expressName='" + expressName + '\'' +", wayBillNo='" + wayBillNo + '\'' +", orderSn='" + orderSn + '\'' +'}';}
}

后续文章链接

第二篇:https://blog.csdn.net/wildwolf_001/article/details/83411476

第三篇:https://blog.csdn.net/wildwolf_001/article/details/83411607

第一篇:丰桥SDK之路由查询【顺丰查询订单的物流信息】相关推荐

  1. B站黑马测试第一篇P182视频数据库SQL语句查询数据准备代码

    drop table if exists goods; create table goods(id int unsigned primary key auto_increment,goodsName ...

  2. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释 继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更 ...

  3. 聊聊后端程序员的知识体系-第一篇

    聊聊后端程序员的知识体系-第一篇 原文链接:https://www.fpthinker.com/backend_knowledge_architecture/knowledge.htmll 亲爱的读者 ...

  4. apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...

    新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...

  5. open62541 (R 1.1.2)中文文档 (译文)第一篇 (1 - 5)

    open62541(R 1.1.2) 文档 注:原文PDF文档 是从官网下载的 Linux64bit的发布版本中自带的文档,原PDF中的源代码用PDF浏览器查看,有残缺.需要结合源文件中的示例代码进行 ...

  6. 技术小白成长之路 - 谷歌云端 GCP Cloud Engineering - 第一篇 - 核心架构 Core Infrastructure

    谷歌云端 GCP Cloud Engineering Certificate - 第一篇 - 核心架构 Core Infrastructure 谷歌云端平台GCP简介 1. 谷歌云端平台GCP资源层次 ...

  7. IIS负载均衡-Application Request Route详解第一篇: ARR介绍

    IIS负载均衡-Application Request Route详解第一篇: ARR介绍   说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Appli ...

  8. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  9. 微信公众号开发入门教程第一篇

    微信公众号开发入门教程第一篇 关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/ ...

最新文章

  1. 这些算法工程师,他们真的是太难了!
  2. backgroundworker控件的使用(线程传值)
  3. Docker 学习6 Docker存储卷
  4. IOS 程序内调用本地打电话功能-make a phone call
  5. Java正则表达式例子汇总
  6. SpringMVC控制器单例和多例
  7. 【Java程序设计】流程控制
  8. ISO50001认证辅导,体系要求组织建立能源管理基准、标杆以及目标指标,对节能效果进行量化
  9. matlab幅度归一化,matlab归一化方法
  10. 配电站房可视化巡检智能监控系统
  11. 其他计算机才能打印,关于HPM126A打印机共享问题-共享之后主机得打印一次后其他电脑才能打印...
  12. IDA反汇编工具使用详解
  13. 新冠疫情历史数据可视化分析
  14. 《动手学习深度学习》第二天
  15. matlab怎么取消科学计数法_在MATLAB中更改数据科学计数法
  16. STM32F103与电脑端通信(使用NRF24L01)
  17. C++继承以及菱形继承
  18. 机器学习笔记——回归(Regression)
  19. 关于几个图像质量评价参数的计算总结
  20. mysql gitd 主从搭建_Yii2 优雅的 Active Record - SegmentFault 思否

热门文章

  1. 虚拟服务器 vmotion,VMotion简单步骤
  2. SIM900A、GPRS、GSM 基础知识
  3. win7计算机任务栏过长,win7电脑怎么调节任务栏的高度
  4. Unity DOTS 学习笔记2 - 面向数据设计的基本概念(上)
  5. 红米airdots掉了怎么查找_百元性价比之选,众筹只需79元的红米airdots2首发体验...
  6. 视频教程-Kali Linux渗透测试基础入门到进阶实战全程课-渗透测试
  7. 阿里巴巴1688诚信通通过市场全面分析选品策略
  8. 使用TensorFlow识别交通标志
  9. ViewBinding 与 Kotlin 委托双剑合璧
  10. linux内核那些事之内存规整(memory compact)