国产99福利精品视频|杨幂精品国产福利在线|国精品午夜福利视频不卡|欧美精品黄网站在线播放|精品国产乱码久久久久久久|国产大片中文字幕在线观看|国产肥熟女视频一区二区三区|国产乱码无码视频一区二区三区

Spring怎樣實(shí)現(xiàn)遠(yuǎn)程服務(wù)編程?

來源:北大青鳥飛迅校區(qū)|發(fā)布時(shí)間:2013-04-28 14:05:57

     引言

     從根本上分析,Remoting實(shí)際上是一種企業(yè)分布式計(jì)算的組件。在同一服務(wù)器(Java虛擬機(jī))內(nèi)進(jìn)行調(diào)用的服務(wù)(或類)并不需要把自己暴露為一種遠(yuǎn)程服務(wù);但是,如果你需要與一個(gè)外部程序(在不同的服務(wù)器上或在一個(gè)不同的組織中)進(jìn)行通訊的話,那么,必須把它實(shí)現(xiàn)為一個(gè)遠(yuǎn)程服務(wù)。Spring框架為把業(yè)務(wù)類暴露為遠(yuǎn)程服務(wù)提供了一種獨(dú)特而靈活的方式。

     Spring Remoting架構(gòu)的核心是服務(wù)對(duì)象,這些對(duì)象其實(shí)是一些POJO,也稱作Spring bean。Spring框架能夠把這些服務(wù)對(duì)象與基礎(chǔ)結(jié)構(gòu)細(xì)節(jié)(例如它們暴露為遠(yuǎn)程服務(wù)的方式)隔離開來;這樣以來,開發(fā)者就可以專注于實(shí)現(xiàn)服務(wù)對(duì)象的業(yè)務(wù)接口而不是牽涉到這些細(xì)節(jié)中去。

     這個(gè)Remoting模型提供了對(duì)業(yè)務(wù)服務(wù)的遠(yuǎn)程抽象。它負(fù)責(zé)編排和反編排方法參數(shù)并且還負(fù)責(zé)處理服務(wù)方法中拋出的任何異常—使用未檢查的RemoteAccessException異常對(duì)它們進(jìn)行包裝。為了實(shí)現(xiàn)各種服務(wù),Spring使用了若干設(shè)計(jì)模式。例如,它使用代理設(shè)計(jì)模式把你對(duì)HTTP POST請(qǐng)求的調(diào)用翻譯成指向輸出服務(wù)的URL。

     本文將著重探討如何使用Spring實(shí)現(xiàn)一個(gè)遠(yuǎn)程服務(wù)。也就是說,要展示使用Spring Remoting API把一個(gè)普通Java對(duì)象(POJO)轉(zhuǎn)化成一個(gè)遠(yuǎn)程服務(wù);這樣以來,外部程序就可以從其業(yè)務(wù)實(shí)現(xiàn)中調(diào)用該服務(wù)。該演示使用一個(gè)示例貸款處理應(yīng)用程序把一個(gè)業(yè)務(wù)服務(wù)實(shí)現(xiàn)為一個(gè)遠(yuǎn)程HTTP服務(wù)并且從一個(gè)測(cè)試客戶端調(diào)用該類中的業(yè)務(wù)方法。

     Spring Remoting工作機(jī)制

     在本節(jié)中,讓我們更為細(xì)致地分析Spring的Remoting工作機(jī)制。要把一個(gè)普通的Java類實(shí)現(xiàn)為一個(gè)遠(yuǎn)程服務(wù),需要提供如下一些內(nèi)容:

     1.遠(yuǎn)程服務(wù)輸出器(exporter)—這些類用于創(chuàng)建為客戶端程序所調(diào)用的遠(yuǎn)程服務(wù)端點(diǎn)。服務(wù)導(dǎo)出器還管理任何用來查詢遠(yuǎn)程服務(wù)的注冊(cè)表。

     2.代理工廠Bean—它們是用于創(chuàng)建代理的工廠類,客戶端能夠使用這些代理連接到遠(yuǎn)程服務(wù)。

     3.HTTP Invoker—如前面所提及,Spring HTTP Invoker使用了一種Remoting模型,你可以使用這種模型實(shí)現(xiàn)跨HTTP的遠(yuǎn)程調(diào)用,同時(shí)使用Java串行化技術(shù)傳遞Java對(duì)象。這樣使得從一個(gè)普通Java類中實(shí)現(xiàn)一個(gè)遠(yuǎn)程服務(wù)容易得多了,并且允許你專注于遠(yuǎn)程服務(wù)的業(yè)務(wù)接口而不必親自考慮遠(yuǎn)程基礎(chǔ)結(jié)構(gòu)的實(shí)現(xiàn)細(xì)節(jié)。

     該技術(shù)依賴于RMI Invoker的基礎(chǔ)結(jié)構(gòu),但是使用HTTP作為傳輸協(xié)議。

     在客戶端方面,Spring HTTP Invoker提供兩種類型的客戶端:Java SE提供的標(biāo)準(zhǔn)API和Commons HttpClient API。默認(rèn)情況下,它使用的是HttpClient。

     接下來,讓我們看一下Spring框架所支持的遠(yuǎn)程(Remoting)技術(shù)。

上一篇:六大高招防止服務(wù)器數(shù)據(jù)丟失
下一篇:Resin啟動(dòng)參數(shù)怎么寫?

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來幫您!