• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于動(dòng)態(tài)代理的Java聲明式HTTP網(wǎng)絡(luò)請(qǐng)求框架的實(shí)現(xiàn)

    2024-12-31 00:00:00龔駿
    互聯(lián)網(wǎng)周刊 2024年16期
    關(guān)鍵詞:序列化調(diào)用開(kāi)發(fā)者

    摘要:隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多項(xiàng)目需要調(diào)用第三方服務(wù)接口來(lái)獲取資源或完成某些功能。使用傳統(tǒng)的HTTP客戶端框架對(duì)接這些差異極大的API,開(kāi)發(fā)和維護(hù)成本越來(lái)越高。本文提出了一種基于動(dòng)態(tài)代理模式的Java聲明式HTTP網(wǎng)絡(luò)請(qǐng)求框架,利用此框架通過(guò)調(diào)用Java接口發(fā)送HTTP請(qǐng)求的方式,可有效提高開(kāi)發(fā)效率,降低系統(tǒng)維護(hù)成本。同時(shí),可通過(guò)自定義攔截器和自定義注解來(lái)增強(qiáng)框架的擴(kuò)展能力。

    關(guān)鍵字:Java;動(dòng)態(tài)代理;聲明式HTTP請(qǐng)求框架;Forest框架

    引言

    隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的項(xiàng)目需要和第三方企業(yè)進(jìn)行對(duì)接,這些服務(wù)商提供的接口大多是基于HTTP的OpenAPI[1](open application programming interface),即開(kāi)放平臺(tái)接口。但是,每家公司的API都有或多或少的差異。有的遵循RESTful風(fēng)格[2],有的不遵循任何HTTP規(guī)范;有的需要SSL雙向認(rèn)證,有的只需要SSL單向認(rèn)證;有的以JSON格式進(jìn)行數(shù)據(jù)傳輸,有的以XML格式進(jìn)行數(shù)據(jù)傳輸,類似的細(xì)節(jié)差異還有很多。

    如果使用傳統(tǒng)HTTP客戶端框架處理這些接口對(duì)接工作,會(huì)要求開(kāi)發(fā)者從HTTP請(qǐng)求參數(shù)、頭信息、簽名、SSL認(rèn)證,到數(shù)據(jù)序列化與反序列化都要自行處理,十分煩瑣,并且很容易將HTTP協(xié)議相關(guān)的細(xì)節(jié)與業(yè)務(wù)代碼混在一起,增加了代碼維護(hù)難度和接口管理難度。

    本文提出的聲明式HTTP請(qǐng)求框架Forest,將HTTP請(qǐng)求代碼分為接口定義和接口調(diào)用兩部分,接口定義部分通過(guò)Java注解直觀地描述接口方法所對(duì)應(yīng)的HTTP相關(guān)內(nèi)容,接口調(diào)用部分則可以像調(diào)用普通Java方法一樣調(diào)用接口,而不必關(guān)心HTTP請(qǐng)求的具體細(xì)節(jié)。這樣不但有效解耦HTTP請(qǐng)求代碼和其他Java業(yè)務(wù)代碼,還能對(duì)開(kāi)發(fā)者屏蔽所有不同HTTP請(qǐng)求之間的差異,提高了代碼的健壯性和可維護(hù)性,并且使得第三方HTTP接口都被集中在相應(yīng)的Java接口類中,更容易進(jìn)行管理和維護(hù)。同時(shí),F(xiàn)orest框架會(huì)自動(dòng)進(jìn)行數(shù)據(jù)的序列化和反序列化,簡(jiǎn)化了發(fā)送HTTP請(qǐng)求和接收服務(wù)端響應(yīng)數(shù)據(jù)的過(guò)程。

    1. Java的HTTP請(qǐng)求相關(guān)技術(shù)與設(shè)計(jì)模式

    在Java編程領(lǐng)域,當(dāng)涉及HTTP網(wǎng)絡(luò)請(qǐng)求的處理時(shí),開(kāi)發(fā)者擁有多樣的選擇。除了JDK自帶的HttpURLConnection類外,眾多第三方開(kāi)源庫(kù)也提供了強(qiáng)大的支持,其中Apache HttpClient和OkHttp使用尤為廣泛,已成了業(yè)界的佼佼者。這些庫(kù)不僅各具特色,而且憑借各自的優(yōu)勢(shì),能夠靈活應(yīng)對(duì)各種HTTP網(wǎng)絡(luò)請(qǐng)求場(chǎng)景。

    1.1 Httpclient框架

    HttpClient是Apache Jakarta Common下的子項(xiàng)目[3],是目前在Java、Android等領(lǐng)域中使用最廣泛的HTTP請(qǐng)求框架之一,其對(duì)HTTP協(xié)議標(biāo)準(zhǔn)支持較為寬泛,功能也很豐富,但使用起來(lái)比較復(fù)雜。

    1.2 OkHttp框架

    OkHttp是一套處理HTTP網(wǎng)絡(luò)請(qǐng)求的依賴庫(kù),由Square公司設(shè)計(jì)研發(fā)并開(kāi)源,目前可以在Java和Kotlin中使用[4],支持HTTP/2、SPDY等較新的網(wǎng)絡(luò)協(xié)議,但不支持某些非標(biāo)準(zhǔn)的HTTP請(qǐng)求。

    1.3 動(dòng)態(tài)代理模式

    1994年,四位作者:Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides提出了設(shè)計(jì)模式的概念,代理模式是他們提出的23種經(jīng)典設(shè)計(jì)模式之一[5-6],其核心作用是為其他對(duì)象提供一種代理機(jī)制,從而實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象的訪問(wèn)控制。在某些特定場(chǎng)景下,當(dāng)調(diào)用者無(wú)法或不愿直接引用某個(gè)對(duì)象時(shí),可以借助“代理”這一中介者來(lái)實(shí)現(xiàn)間接引用。

    代理模式主要分為靜態(tài)代理和動(dòng)態(tài)代理兩種形式。靜態(tài)代理要求在編譯階段就預(yù)先定義好代理類,并通過(guò)這些代理類間接地調(diào)用被代理的接口。然而,當(dāng)需要代理的接口數(shù)量龐大時(shí),這種方式就需要準(zhǔn)備相應(yīng)數(shù)量的代理類。

    動(dòng)態(tài)代理則是利用Java的反射機(jī)制,在運(yùn)行時(shí)動(dòng)態(tài)地創(chuàng)建并生成指定接口的代理對(duì)象,每個(gè)代理對(duì)象都會(huì)一個(gè)相關(guān)聯(lián)的InvocationHandler接口實(shí)現(xiàn)類對(duì)象[7]。這種方式無(wú)須事先定義很多代理類,而是將不同接口的邏輯統(tǒng)一放置在InvocationHandler接口實(shí)現(xiàn)類對(duì)象的invoke()函數(shù)中進(jìn)行動(dòng)態(tài)區(qū)分。

    1.4 聲明式編程

    聲明式編程是用一種編程范式,表示邏輯運(yùn)算時(shí)不需要說(shuō)明程序的控制流程,只試圖通過(guò)描述程序應(yīng)該完成什么而不是怎樣完成來(lái)降低程序語(yǔ)言表達(dá)式或函數(shù)產(chǎn)生的副作用[8]。在聲明式編程中,程序員關(guān)注的是所需結(jié)果,而具體實(shí)現(xiàn)的步驟和過(guò)程則交由計(jì)算機(jī)來(lái)處理。這使得代碼更為簡(jiǎn)潔、直觀,且易于理解和維護(hù)。

    在Java中可以通過(guò)注解和動(dòng)態(tài)代理模式的結(jié)合實(shí)現(xiàn)聲明式編程,開(kāi)發(fā)者可以自定義一些普通的Java接口,然后用一些定義好的注解來(lái)描述某個(gè)接口是做什么的,而不需要實(shí)現(xiàn)該接口每一步的具體步驟。

    2. 基于動(dòng)態(tài)代理的聲明式HTTP客戶端框架的設(shè)計(jì)與實(shí)現(xiàn)

    針對(duì)傳統(tǒng)HTTP請(qǐng)求框架的不足,本文提出了一種聲明式的HTTP請(qǐng)求框架,命名為Forest,基于Java動(dòng)態(tài)代理模式進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。該框架旨在達(dá)成以下關(guān)鍵目標(biāo):

    (1)聲明式接的HTTP請(qǐng)求調(diào)用。開(kāi)發(fā)者能夠通過(guò)普通的自定義Java接口方法直接發(fā)起HTTP請(qǐng)求,僅須通過(guò)注解明確HTTP請(qǐng)求相關(guān)信息,如URL、請(qǐng)求頭、Query參數(shù)、請(qǐng)求體數(shù)據(jù)等,無(wú)須深入處理HTTP請(qǐng)求發(fā)送與接收的煩瑣過(guò)程。

    (2)數(shù)據(jù)格式的自動(dòng)識(shí)別與轉(zhuǎn)換。Forest能夠自動(dòng)識(shí)別數(shù)據(jù)格式,并自動(dòng)進(jìn)行序列化和反序列化操作,為開(kāi)發(fā)者提供便捷的數(shù)據(jù)處理體驗(yàn)。

    (3)靈活的HTTP接口擴(kuò)展。借助攔截器機(jī)制,開(kāi)發(fā)者可以便捷地對(duì)HTTP接口進(jìn)行擴(kuò)展,滿足各種自定義需求。

    (4)底層HTTP請(qǐng)求框架的靈活切換。Forest允許根據(jù)實(shí)際需求選擇合適的底層HTTP請(qǐng)求框架,以適應(yīng)不同項(xiàng)目環(huán)境要求。

    2.1 Forest架構(gòu)設(shè)計(jì)

    除了開(kāi)發(fā)者通過(guò)注解自定義的聲明式接口外,F(xiàn)orest的整個(gè)框架可分為動(dòng)態(tài)代理、前端和后端三個(gè)部分,如圖1所示。

    (1)動(dòng)態(tài)代理:是Forest框架為自定義聲明式接口動(dòng)態(tài)生成的代理實(shí)現(xiàn)。在初始化階段,F(xiàn)orest通過(guò)調(diào)用Proxy.newProxyInstance()方法創(chuàng)建動(dòng)態(tài)代理實(shí)例,作為聲明接口的實(shí)際對(duì)象,供開(kāi)發(fā)者方便調(diào)用。同時(shí),該過(guò)程還會(huì)將接口上的注解轉(zhuǎn)化為HTTP請(qǐng)求所需的具體信息。

    (2)前端:作為開(kāi)發(fā)者調(diào)用的接口層,實(shí)現(xiàn)了Forest的特有功能,對(duì)底層的HTTP協(xié)議內(nèi)容進(jìn)行了高度的抽象和封裝,涵蓋HTTP請(qǐng)求、HTTP響應(yīng)、Query參數(shù)、請(qǐng)求頭等要素。此外,前端部分代碼還會(huì)解析接口注解中描述的HTTP請(qǐng)求元數(shù)據(jù)信息,構(gòu)建請(qǐng)求對(duì)象,并執(zhí)行參數(shù)拼接、攔截器調(diào)用、數(shù)據(jù)轉(zhuǎn)換、日志打印等一系列復(fù)雜操作,但不進(jìn)行實(shí)際的網(wǎng)絡(luò)請(qǐng)求發(fā)生操作。

    (3)后端:作為實(shí)際HTTP網(wǎng)絡(luò)請(qǐng)求發(fā)送與接收的底層部分,封裝并集成了Httpclient和OkHttp兩大傳統(tǒng)HTTP請(qǐng)求框架。為了確保后端框架的通用性和可替換性,每一個(gè)傳統(tǒng)框架的后端實(shí)現(xiàn)代碼都必須遵循ForestBackend接口。

    2.2 Forest原理

    Forest框架的工作流程大致可以分為兩個(gè)主要過(guò)程:接口初始化過(guò)程、請(qǐng)求發(fā)送過(guò)程。

    (1)接口初始化過(guò)程:在此階段,F(xiàn)orest框架會(huì)詳盡地讀取開(kāi)發(fā)者所定義的聲明式接口的元信息以及注解描述內(nèi)容,以明確接口對(duì)應(yīng)的各項(xiàng)HTTP相關(guān)屬性?;谶@些信息,F(xiàn)orest框架將生成相應(yīng)的聲明式接口的動(dòng)態(tài)代理對(duì)象,作為后續(xù)操作的入口。

    (2)請(qǐng)求發(fā)送過(guò)程:當(dāng)開(kāi)發(fā)者需要發(fā)起對(duì)遠(yuǎn)端HTTP服務(wù)的請(qǐng)求時(shí),將調(diào)用這些動(dòng)態(tài)代理對(duì)象的方法。Forest框架會(huì)根據(jù)方法的調(diào)用參數(shù),構(gòu)建相應(yīng)的請(qǐng)求,將其發(fā)送到遠(yuǎn)端HTTP網(wǎng)絡(luò)服務(wù),然后等待并接收服務(wù)的響應(yīng)結(jié)果,并在收到結(jié)果后進(jìn)行反序列化,最后返回這些處理好的數(shù)據(jù)。

    2.3 Forest接口初始化過(guò)程

    Forest接口初始化的過(guò)程如圖2所示。Forest框架使用配置類ForestConfiguration的對(duì)象來(lái)進(jìn)行聲名式接口的實(shí)例化和初始化過(guò)程。ForestConfiguration類作為Forest的全局配置類,負(fù)責(zé)管理并維護(hù)包括默認(rèn)超時(shí)時(shí)間、最大連接數(shù)等在內(nèi)的全局配置數(shù)據(jù)。因此,在使用Forest框架時(shí),該類的對(duì)象是第一個(gè)需要?jiǎng)?chuàng)建的實(shí)例。隨后,可基于該對(duì)象來(lái)創(chuàng)建聲名式接口的動(dòng)態(tài)代理實(shí)例。

    這一動(dòng)態(tài)代理的創(chuàng)建過(guò)程主要通過(guò)調(diào)用以下兩個(gè)方法來(lái)完成。

    方法1:獲取動(dòng)態(tài)代理工廠。創(chuàng)建或返回ForestProxyFactory類對(duì)象。該對(duì)象會(huì)被緩存,若緩存中有則直接返回。

    方法2:通過(guò)調(diào)用動(dòng)態(tài)代理的createInstance()方法,創(chuàng)建具體的動(dòng)態(tài)代理對(duì)象。在此方法中,首先會(huì)生成一個(gè)InterfaceProxyHandler類的對(duì)象。該類作為Forest框架提供的代理處理類,實(shí)現(xiàn)了JDK中的InvocationHandler接口,因此所有針對(duì)聲明式方法的調(diào)用,最終都將導(dǎo)向該類對(duì)象的invoke()方法。

    而在該類的實(shí)例化過(guò)程中也會(huì)對(duì)聲明式接口的所有接口方法進(jìn)行初始化,其過(guò)程如圖3所示。

    接口方法初始化時(shí),F(xiàn)orest框架通過(guò)反射遍歷接口中定義的所有Java方法。若方法帶Forest注解,則創(chuàng)建ForestMethod對(duì)象封裝JDK Method對(duì)象,并調(diào)用initMethod()初始化:讀取Forest注解的URL、請(qǐng)求頭、請(qǐng)求體等元數(shù)據(jù),并保存在ForestMethod對(duì)象中。該接口的所有ForestMethod對(duì)象初始化完成后,InterfaceProxyHandler對(duì)象也完成初始化,使用Proxy的newProxyInstance()創(chuàng)建動(dòng)態(tài)代理對(duì)象并緩存,提高運(yùn)行效率。

    2.4 Forest請(qǐng)求發(fā)送過(guò)程

    請(qǐng)求發(fā)送過(guò)程可分為以下9個(gè)步驟。

    (1)調(diào)用代理方法。通過(guò)Forest接口初始化過(guò)程后,會(huì)得到一個(gè)動(dòng)態(tài)代理對(duì)象,當(dāng)該代理的方法被調(diào)用時(shí)便會(huì)觸發(fā)請(qǐng)求發(fā)送的后續(xù)步驟。

    (2)構(gòu)建Forest請(qǐng)求。當(dāng)接口代理方法被調(diào)用時(shí),InterfaceProxyHandler的invoke()方法會(huì)找到對(duì)應(yīng)的ForestMethod對(duì)象,并調(diào)用其makeRequest()方法進(jìn)行Forest請(qǐng)求對(duì)象的構(gòu)建。此過(guò)程會(huì)去讀HTTP元數(shù)據(jù),并組裝到Forest請(qǐng)求對(duì)象的URL、Query參數(shù)、請(qǐng)求頭等屬性中。

    (3)執(zhí)行Forest請(qǐng)求。Forest請(qǐng)求對(duì)象實(shí)現(xiàn)了框架前端對(duì)HTTP請(qǐng)求的抽象封裝。構(gòu)建完成后,通過(guò)execute()方法啟動(dòng)請(qǐng)求執(zhí)行過(guò)程,系統(tǒng)在調(diào)用后端框架之前會(huì)先進(jìn)行預(yù)處理,包括前置攔截器調(diào)用和Cookie處理,以擴(kuò)展Forest功能。預(yù)處理后,根據(jù)配置選擇后端客戶端接口,然后再執(zhí)行后端HTTP框架的請(qǐng)求過(guò)程。

    (4)創(chuàng)建后端執(zhí)行器。在進(jìn)行下一步之前,先要?jiǎng)?chuàng)建后端執(zhí)行器,因?yàn)槭峭ㄟ^(guò)它來(lái)執(zhí)行實(shí)際的網(wǎng)絡(luò)請(qǐng)求過(guò)程的。

    如圖4所示,HttpBackend接口有HttpclientBackend和OkHttpBackend兩個(gè)實(shí)現(xiàn)類,分別基于Apache Httpclient和OkHttp框架。采用類似抽象工廠模式,HttpBackend是HttpExecutor接口實(shí)現(xiàn)類的抽象工廠,通過(guò)HttpBackendSelector的select()方法反射獲取。這種設(shè)計(jì)避免了與具體后端框架的耦合,方便切換和擴(kuò)展。獲取HttpBackend實(shí)現(xiàn)類后,可調(diào)用createExecutor()方法創(chuàng)建后端執(zhí)行器。

    (5)構(gòu)建后端請(qǐng)求。后端請(qǐng)求指后端HTTP框架中實(shí)際執(zhí)行請(qǐng)求的對(duì)象。如Apache Httpclient的HttpclientExecutor創(chuàng)建的是Apache Httpclient請(qǐng)求對(duì)象,OkHttpExecutor則創(chuàng)建OkHttp請(qǐng)求對(duì)象。

    當(dāng)后端請(qǐng)求對(duì)象創(chuàng)建后,F(xiàn)orest框架會(huì)自動(dòng)映射Forest請(qǐng)求屬性到后端請(qǐng)求屬性上,隨后系統(tǒng)準(zhǔn)備發(fā)起HTTP網(wǎng)絡(luò)請(qǐng)求。

    (6)發(fā)送網(wǎng)絡(luò)請(qǐng)求并等待響應(yīng)。在這一步驟中,將先前構(gòu)建的后端請(qǐng)求對(duì)象執(zhí)行同步網(wǎng)絡(luò)發(fā)送操作,此過(guò)程將阻塞當(dāng)前線程,直至遠(yuǎn)端HTTP服務(wù)返回響應(yīng)或遇到錯(cuò)誤、異常等情況,這時(shí)后續(xù)代碼才會(huì)繼續(xù)執(zhí)行。

    (7)構(gòu)建Forest響應(yīng)。在接收到遠(yuǎn)端HTTP服務(wù)的響應(yīng)或發(fā)生錯(cuò)誤時(shí),當(dāng)前線程將恢復(fù)執(zhí)行,并會(huì)首先創(chuàng)建并初始化一個(gè)Forest響應(yīng)對(duì)象,此對(duì)象是對(duì)后端HTTP框架響應(yīng)對(duì)象的包裝。

    (8)處理并返回響應(yīng)數(shù)據(jù)。構(gòu)建Forest響應(yīng)對(duì)象后,通過(guò)調(diào)用其isSuccess()方法來(lái)判斷請(qǐng)求是否成功。一旦成功,就可以執(zhí)行后續(xù)步驟。

    通過(guò)響應(yīng)對(duì)象可以獲取HTTP響應(yīng)的數(shù)據(jù)流。然后將其反序列化為與聲明式接口方法的返回類型匹配的數(shù)據(jù)。一旦反序列化成功,就可以調(diào)用后置攔截器,最后返回結(jié)果給調(diào)用者,從而完成整個(gè)流程。

    (9)錯(cuò)誤處理。若計(jì)算機(jī)網(wǎng)絡(luò)或遠(yuǎn)端服務(wù)不穩(wěn)定,如網(wǎng)絡(luò)超時(shí)、服務(wù)錯(cuò)誤、參數(shù)錯(cuò)誤等,請(qǐng)求可能失敗。使用Forest的isSuccess()判斷請(qǐng)求結(jié)果,有錯(cuò)誤則調(diào)用攔截器或拋出異常??赏ㄟ^(guò)getStatus()和getException()獲取響應(yīng)碼和異常信息。

    3. Forest框架應(yīng)用實(shí)踐

    本文提出的Forest框架已經(jīng)開(kāi)源,倉(cāng)庫(kù)地址:https://github.com/dromara/forest。自2018年起,垂直電商網(wǎng)站野獸派(https://www.thebeastshop.com)使用Forest框架重構(gòu)支付系統(tǒng),對(duì)接多個(gè)支付平臺(tái)。傳統(tǒng)HTTP框架處理復(fù)雜且維護(hù)困難。Forest框架重構(gòu)后,支付系統(tǒng)減少重復(fù)代碼,每個(gè)平臺(tái)僅需創(chuàng)建聲明式接口,提升系統(tǒng)可管理性和維護(hù)性。攔截器編寫簽名過(guò)程,實(shí)現(xiàn)與請(qǐng)求接口解耦,避免與業(yè)務(wù)代碼混淆。此后,支付系統(tǒng)還接入收錢吧支付平臺(tái)。

    通過(guò)本框架,野獸派重構(gòu)支付系統(tǒng),解耦業(yè)務(wù)代碼與HTTP請(qǐng)求,降低第三方平臺(tái)對(duì)接復(fù)雜度。本框架確保HTTP請(qǐng)求調(diào)用的有效性、穩(wěn)定性、簡(jiǎn)單性和可維護(hù)性,同時(shí)提升系統(tǒng)可擴(kuò)展性,為應(yīng)用系統(tǒng)帶來(lái)實(shí)際效益。

    結(jié)語(yǔ)

    隨著企業(yè)對(duì)微服務(wù)架構(gòu)和第三方服務(wù)依賴增加,HTTP請(qǐng)求調(diào)用場(chǎng)景變復(fù)雜。Forest框架為此提供高效解決方案。相比傳統(tǒng)HTTP框架,F(xiàn)orest集成了動(dòng)態(tài)代理層,涉及數(shù)據(jù)轉(zhuǎn)換、日志打印等功能,性能略有損失。未來(lái),將持續(xù)優(yōu)化框架性能,追求接近底層HTTP框架的請(qǐng)求調(diào)用延遲,為開(kāi)發(fā)者提供高效開(kāi)發(fā)環(huán)境。同時(shí),將跟進(jìn)新興HTTP協(xié)議,如Websocket、HTTP/3、QUIC,確保Forest框架持續(xù)適配新技術(shù)。

    參考文獻(xiàn):

    [1]張乾.Web應(yīng)用與OpenAPI對(duì)接的適應(yīng)性框架的研究[D].秦皇島:燕山大學(xué),2021.

    [2]李大鵬.基于Rest風(fēng)格web服務(wù)的研究[J].電子商務(wù),2010(4):63,65.

    [3]王超,閭陳莉,吳迪,等.基于HttpClient的Android客戶端的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2014(3):30-32.

    [4]李群.基于OkHttp的文件傳輸設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2018(13):180-181.

    [5]盧增寧.設(shè)計(jì)模式及其在軟件設(shè)計(jì)中的應(yīng)用[J].信息與電腦(理論版),2020,32(16):127-129.

    [6]鐘茂生,王明文.軟件設(shè)計(jì)模式及其使用[J].計(jì)算機(jī)應(yīng)用,2002(8):32-35.

    [7]盧楠.Java動(dòng)態(tài)代理的研究與應(yīng)用[J].計(jì)算機(jī)與網(wǎng)絡(luò),2014,40(12):50-52.

    [8]鄭浩然,肖偉.基于規(guī)則引擎的JAVA聲明式編程[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(12):132-134.

    作者簡(jiǎn)介:龔駿,碩士研究生,高級(jí)工程師,319288386@qq.com,研究方向:Java后臺(tái)架構(gòu)、微服務(wù)、分布式。

    猜你喜歡
    序列化調(diào)用開(kāi)發(fā)者
    如何建構(gòu)序列化閱讀教學(xué)
    甘肅教育(2020年14期)2020-09-11 07:58:36
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    Java 反序列化漏洞研究
    16%游戲開(kāi)發(fā)者看好VR
    CHIP新電腦(2016年3期)2016-03-10 13:06:42
    iOS開(kāi)發(fā)者調(diào)查
    電腦迷(2015年8期)2015-05-30 12:27:10
    iOS開(kāi)發(fā)者調(diào)查
    電腦迷(2015年4期)2015-05-30 05:24:09
    作文訓(xùn)練微格化、序列化初探
    利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
    栾川县| 绥德县| 洪江市| 井研县| 宁城县| 阿城市| 抚顺市| 浦北县| 衢州市| 曲周县| 康平县| 嵊泗县| 双江| 福鼎市| 泉州市| 中西区| 孝义市| 江口县| 长治县| 宜城市| 方正县| 武城县| 青田县| 临沂市| 白山市| 榕江县| 嘉兴市| 平顺县| 屯门区| 上栗县| 项城市| 阆中市| 永宁县| 栖霞市| 汕头市| 历史| 古丈县| 延边| 孟村| 微山县| 浦江县|