成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一次搞定:借助Hutool封裝代碼快速解決webservice調用煩惱

開發
本文是作者近兩年和醫療行業的廠家打交道研究出來的一點調用webservice接口的心得,代碼在生產環境也用了挺久了,專門撈出來作為一期干貨分享給大家。

前言

相信很多同行哪怕學了許多主流技術,但工作上依然免不了和傳統企業打交道,而這樣的企業往往還在用webservice做接口交互。

本文是作者近兩年和醫療行業的廠家打交道研究出來的一點調用webservice接口的心得,代碼在生產環境也用了挺久了,專門撈出來作為一期干貨分享給大家。

愿天下再無webservice!

正文

引入Hutool依賴就不說了,直接上硬菜。

1、選擇測試案例

因為公司內部調用的廠家webservice不方便公開,所以我在網上選擇了一個免費的webservice接口作為案例。

地址: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

這里選擇第一個即可

調試提供方的webservice接口,首先要學會分析一下,基本上就是三原則。

方法名稱、命名空間、入參名稱,如下圖紅框所示。

借助Hutool中的SoapClient來實現客戶端調用webservice的工具類。

首先,抽取命名空間和webservice地址,這里地址在調試階段可以寫死,后續再改為配置形式。

其次,定義調用客戶端方法,入參分別是方法名、入參名、入參值。

這樣這個方法被調用時,就可以動態傳入webservice中不同的方法及參數,達到公用的目的。

紅框部分就是Hutool提供的SoapClient創建客戶端

webservice在Hutool的工具類集合中屬于非核心維護的一類工具,所以內部本身是有一些地方沒有優化的。

比如上面截圖中的用法就是官網的說明,直接SoapClient.create()來創建。

我們點進去源碼看一下,發現每次都是new一個對象。

但因為封裝的比較深,我們還是寫個簡單的方法驗證一下是不是每次都新建了對象。

直接創建兩次對象,然后進行比較,看是否指向同一個引用,發現返回是false,說明確實是不同的對象。

考慮到生產環境下,存在訪問量突增的可能,如果每次創建一個對象存在隱患,這里我們使用單例模式優化一下。

單例模式的寫法很多,我這里選擇Holder方式,也就是雙重檢查鎖進一步優化之后的方式,在高并發場景下要更合適一點。

接下來,我們驗證下單例模式是否生效。

修改下之前創建客戶端的代碼,這樣每次請求時,只獲取一次客戶端就可以了。

官網沒有明確指出如何處理錯誤信息,但本身提供了相關的方法,我這邊通過不斷驗證之后,給出了最優解。

調用一開始的webservice接口,看是否可以成功。

最后,這里展示下我負責的項目在生產環境調用第三方廠家webservice接口的入參和出參,同樣使用的是上面封裝的工具類。

對方的入參和出參都是XML格式,最終效果如下:

總結

1、拿到一個webservice接口后,首先分析命名空間、方法名、入參名分別是什么;

2、使用Hutool提供的SoapClient工具類完成webservice的動態調用,同時配合單例模式進行優化;

3、錯誤信息處理的優化。

4、最后有一點要注意,Hutool的webservice工具類還未支持Java17,只兼容了Java8,因此不建議高版本使用,但目前大多數企業依然是Java8為主流版本,后續Hutool肯定也會根據版本來升級的。

想查看完整工具類的也可以自己去下載,然后自己測一測效果。

責任編輯:龐桂玉 來源: 51CTO博客
相關推薦

2023-08-02 10:11:00

DOM曝光封裝

2017-06-12 11:09:56

計數架構數據庫

2013-04-17 09:16:37

2019-09-23 10:26:20

開源技術 工具

2022-04-22 10:51:45

TSaxios前端

2017-03-22 15:38:28

代碼架構Java

2011-05-06 10:32:06

硬盤鍵盤

2023-09-06 09:00:00

2011-07-12 09:47:53

WebService

2021-11-26 14:45:16

日志Java代碼

2011-06-28 10:41:50

DBA

2025-04-09 08:00:00

FastAPI統一響應全局異常處理

2024-03-18 09:10:00

死鎖日志binlog

2024-05-20 00:00:00

代碼主線程

2022-09-14 15:40:03

接口解決

2021-03-05 22:41:55

CDH集群CDH集群

2024-12-17 14:52:46

2021-12-27 10:08:16

Python編程語言

2020-10-24 13:50:59

Python編程語言

2014-11-12 13:22:34

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产乱码精品一区二区三区五月婷 | 国产一区二区三区色淫影院 | 久操伊人| 国产91在线 | 中日 | 一区二区三区欧美 | 成人亚洲精品久久久久软件 | 久久艹免费视频 | 亚洲精品一 | 久久69精品久久久久久国产越南 | 蜜桃五月天 | 中文字幕一区二区三区四区五区 | 91精品国产色综合久久不卡98口 | 亚洲视频在线观看免费 | 久久国产精品免费一区二区三区 | 欧美日韩视频一区二区 | 亚洲区中文字幕 | 欧美日韩精品亚洲 | 国产一区二区三区色淫影院 | 在线成人免费av | 精品视频在线一区 | 亚洲免费网址 | 成人亚洲视频 | 久热国产精品 | 免费一级做a爰片久久毛片潮喷 | 欧美亚洲视频 | 亚洲免费精品 | 日韩精品视频在线观看一区二区三区 | 久久激情视频 | 97精品一区二区 | 91在线精品一区二区 | 中文精品视频 | 91精品国产高清久久久久久久久 | 成人av片在线观看 | 亚洲综合中文字幕在线观看 | 一区二区视频免费观看 | 在线观看www视频 | 亚洲国产成人一区二区 | 亚洲成人日韩 | 日韩中文字幕在线观看视频 | 国产成人精品综合 | .国产精品成人自产拍在线观看6 |