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

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

開發(fā)
本文是作者近兩年和醫(yī)療行業(yè)的廠家打交道研究出來(lái)的一點(diǎn)調(diào)用webservice接口的心得,代碼在生產(chǎn)環(huán)境也用了挺久了,專門撈出來(lái)作為一期干貨分享給大家。

前言

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

本文是作者近兩年和醫(yī)療行業(yè)的廠家打交道研究出來(lái)的一點(diǎn)調(diào)用webservice接口的心得,代碼在生產(chǎn)環(huán)境也用了挺久了,專門撈出來(lái)作為一期干貨分享給大家。

愿天下再無(wú)webservice!

正文

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

1、選擇測(cè)試案例

因?yàn)楣緝?nèi)部調(diào)用的廠家webservice不方便公開,所以我在網(wǎng)上選擇了一個(gè)免費(fèi)的webservice接口作為案例。

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

這里選擇第一個(gè)即可

調(diào)試提供方的webservice接口,首先要學(xué)會(huì)分析一下,基本上就是三原則。

方法名稱、命名空間、入?yún)⒚Q,如下圖紅框所示。

借助Hutool中的SoapClient來(lái)實(shí)現(xiàn)客戶端調(diào)用webservice的工具類。

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

其次,定義調(diào)用客戶端方法,入?yún)⒎謩e是方法名、入?yún)⒚⑷雲(yún)⒅怠?/p>

這樣這個(gè)方法被調(diào)用時(shí),就可以動(dòng)態(tài)傳入webservice中不同的方法及參數(shù),達(dá)到公用的目的。

紅框部分就是Hutool提供的SoapClient創(chuàng)建客戶端

webservice在Hutool的工具類集合中屬于非核心維護(hù)的一類工具,所以內(nèi)部本身是有一些地方?jīng)]有優(yōu)化的。

比如上面截圖中的用法就是官網(wǎng)的說(shuō)明,直接SoapClient.create()來(lái)創(chuàng)建。

我們點(diǎn)進(jìn)去源碼看一下,發(fā)現(xiàn)每次都是new一個(gè)對(duì)象。

但因?yàn)榉庋b的比較深,我們還是寫個(gè)簡(jiǎn)單的方法驗(yàn)證一下是不是每次都新建了對(duì)象。

直接創(chuàng)建兩次對(duì)象,然后進(jìn)行比較,看是否指向同一個(gè)引用,發(fā)現(xiàn)返回是false,說(shuō)明確實(shí)是不同的對(duì)象。

考慮到生產(chǎn)環(huán)境下,存在訪問量突增的可能,如果每次創(chuàng)建一個(gè)對(duì)象存在隱患,這里我們使用單例模式優(yōu)化一下。

單例模式的寫法很多,我這里選擇Holder方式,也就是雙重檢查鎖進(jìn)一步優(yōu)化之后的方式,在高并發(fā)場(chǎng)景下要更合適一點(diǎn)。

接下來(lái),我們驗(yàn)證下單例模式是否生效。

修改下之前創(chuàng)建客戶端的代碼,這樣每次請(qǐng)求時(shí),只獲取一次客戶端就可以了。

官網(wǎng)沒有明確指出如何處理錯(cuò)誤信息,但本身提供了相關(guān)的方法,我這邊通過不斷驗(yàn)證之后,給出了最優(yōu)解。

調(diào)用一開始的webservice接口,看是否可以成功。

最后,這里展示下我負(fù)責(zé)的項(xiàng)目在生產(chǎn)環(huán)境調(diào)用第三方廠家webservice接口的入?yún)⒑统鰠ⅲ瑯邮褂玫氖巧厦娣庋b的工具類。

對(duì)方的入?yún)⒑统鰠⒍际荴ML格式,最終效果如下:

總結(jié)

1、拿到一個(gè)webservice接口后,首先分析命名空間、方法名、入?yún)⒚謩e是什么;

2、使用Hutool提供的SoapClient工具類完成webservice的動(dòng)態(tài)調(diào)用,同時(shí)配合單例模式進(jìn)行優(yōu)化;

3、錯(cuò)誤信息處理的優(yōu)化。

4、最后有一點(diǎn)要注意,Hutool的webservice工具類還未支持Java17,只兼容了Java8,因此不建議高版本使用,但目前大多數(shù)企業(yè)依然是Java8為主流版本,后續(xù)Hutool肯定也會(huì)根據(jù)版本來(lái)升級(jí)的。

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

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO博客
相關(guān)推薦

2017-06-12 11:09:56

計(jì)數(shù)架構(gòu)數(shù)據(jù)庫(kù)

2023-08-02 10:11:00

DOM曝光封裝

2013-04-17 09:16:37

2019-09-23 10:26:20

開源技術(shù) 工具

2022-04-22 10:51:45

TSaxios前端

2017-03-22 15:38:28

代碼架構(gòu)Java

2011-05-06 10:32:06

硬盤鍵盤

2023-09-06 09:00:00

2021-11-26 14:45:16

日志Java代碼

2011-07-12 09:47:53

WebService

2025-04-09 08:00:00

FastAPI統(tǒng)一響應(yīng)全局異常處理

2011-06-28 10:41:50

DBA

2022-09-14 15:40:03

接口解決

2021-03-05 22:41:55

CDH集群CDH集群

2024-03-18 09:10:00

死鎖日志binlog

2024-12-17 14:52:46

2024-05-20 00:00:00

代碼主線程

2021-12-27 10:08:16

Python編程語(yǔ)言庫(kù)

2020-10-24 13:50:59

Python庫(kù)編程語(yǔ)言

2014-11-12 13:22:34

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 黄色一级在线播放 | www.97zyz.com| 四色永久 | 国产视频中文字幕 | 国产一区二区在线播放视频 | 搞av.com | av影音在线| 国产精品96久久久久久 | 亚洲国产成人精品久久 | 91精品国产一区二区 | 国产精品免费观看 | 亚洲高清在线 | 草久久| 综合久久亚洲 | 黄色中文字幕 | 欧美aaaaaaaa| 91九色在线观看 | 国产高清视频一区二区 | 日韩视频三区 | 免费视频一区 | 久久国色| 国产精品一区二区在线观看 | 亚洲精品视频一区二区三区 | 日本精品久久久久久久 | 99热视| 懂色av一区二区三区在线播放 | 一区二区三区电影在线观看 | 中文字幕一区二区在线观看 | 精品视频在线免费观看 | 1区2区视频 | 亚洲精品第一 | 国产精品一区二区在线免费观看 | 在线免费观看a级片 | 伊人久久在线 | 黑人精品 | 成年免费在线观看 | 欧美日韩激情 | 中文字幕视频三区 | 男人天堂免费在线 | 在线一区二区三区 | 免费观看羞羞视频网站 |