999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的XML解析與反射設計模式

2012-12-31 00:00:00張磊
中小企業管理與科技·上旬刊 2012年12期

摘要:隨著計算機時代的蓬勃發展,Internet的普及給社會以及人民的生活帶來了巨大的影響。與此同時,B/S結構的多系統相互訪問技術應時代的發展也如雨后春筍般不斷涌現出來,相應的多系統間數據交互產生的問題也是越來越多,XML的數據解析與系統業務邏輯如何融合就是其中比較難以解決的問題之一。

關鍵詞:XML Java

在web中,多系統間數據交互一般使用WebService技術,它是一種構建應用程序的普遍模型,可以在任何支持網絡通信的操作系統中實施運行;它是一種新的web應用程序分支,是自包含、自描述、模塊化的應用,可以發布、定位、通過web調用。WebService是一個應用組件,它邏輯性的為其他應用程序提供數據與服務。各應用程序通過網絡協議和規定的一些標準數據格式(Http,XML,Soap)來訪問WebService,通過WebService內部執行得到所需結果。Web Service可以執行從簡單的請求到復雜商務處理的任何功能。一旦部署以后,其他WebService應用程序可以發現并調用它部署的服務。WebService的主要目標就是跨平臺的可互操作性。為了達到這一目標,WebService完全基于XML、XSD等獨立于平臺、獨立于軟件供應商的標準,是創建可互操作的、分布式應用程序的新平臺。

Java作為現下最流行的可撰寫的跨平臺應用軟件的面向對象的程序設計語言,在多系統數據交互這方面具有先天的優勢。它具有動態性,它的設計目標之一是適應于動態變化的環境。Java程序需要的類能夠動態的被載入到運行環境,也可以通過網絡來載入所需要的類。安全性,Java通常被用在網絡環境宏,為此,Java提供了一個安全機制加以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網絡下載的類具有一個安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。多元性,作為現下最流行的語言,應用之廣泛,資源之充足都是現今流行語言中的佼佼者,在行業和企業信息化、電子政務及辦公自動化、嵌入式設備及消費類電子產品、輔助教學等領域發揮著其多元性的優勢。

XStream可以完美轉換XML,與以往的解析XML工具dom相比,XStream是一個易用的、開源的庫,使用起來簡單、小巧,容易理解,可以輕易的將Java對象和xml文檔相互轉換,而且可以修改某個特定的屬性和節點名稱。就是由于與Java對象的完美轉換才更貼近于面向對象的設計思想,讓開發人員更易于使用,更易于過度解析XML與項目業務邏輯之間的聯系。XStream不僅對XML的轉換非常友好,而且提供annotation注解,可以在avaBean中完成對xml節點、屬性的描述。以及對JSON也支持,只需要提供相關的JSONDriver就可以完成轉換。使用XStream序列化的類不需要實現Serializable接口。XStream是一種序列化工具而不是數據綁定工具,就是說不能從XML或者XML Schema Definition (XSD)文件生成類。

和其他序列化工具相比,XStream 有三個突出的特點:①XStream不關心序列化/逆序列化的類的字段的可見性。②序列化/逆序列化類的字段不需要getter和setter 方法。③序列化/逆序列化的類不需要有默認構造函數。

不需要修改類,使用 XStream就能直接序列化/逆序列化任何第三方類。XStream也有其欠缺的地方,當XML過大時用XStream解析就略顯笨重,SAXParser可以解決這個問題,SAXParser在處理XML時非常類似于流媒體的方式,分析能夠立刻開始,而不是等待所有的數據被處理。而且程序只是在讀取數據時檢查數據,因此不需要將數據存儲在內存中。這對于處理大型XML來說是個巨大的優點,事實上,程序甚至不必解析整個文檔,它可以在某個條件得到滿足時停止解析,這種讀取方式比XStream與DOM都要快上許多。所以在讀取大型XML時可以把XStream與SAXParser結合起來使用,用SAXParser讀取整個XML把核心數據部分讓XStream來解析成JavaBean,這樣既解決了大數據的問題又利用了XStream快速轉化JavaBean的優點。

為了利于多系統間數據交互的一致性與標準性,需要在開發項目初期就要制定好數據交互的XSD標準( XML Schemas Definition )。XSD描述了XML文檔的結構??梢杂靡粋€指定的XSD來驗證某個XML文檔,以檢查該XML文檔是否符合其要求。文檔設計者可以通過XSD指定一個XML文檔所允許的結構和內容,并可據此檢查一個XML文檔是否是有效的。XSD本身是一個XML文檔,它符合XML語法結構。可以用通用的XML解析器解析它。以此來約束多方的開發數據交互邏輯,這樣多系統間才會拋開各種開發語言不兼容的鴻溝,達成數據通信的目的。當一方接收到傳過來的XML文件時首先需要對其進行XSD校驗,如果不符合事先已規定的XSD的規范,可以立刻退回給發送方,告之不符合XSD校驗拒絕處理等返回信息。反之,如果校驗通過則可以進行后續業務處理。

通過XStream解析的XML轉化為JavaBean利用Java的反射技術來實現程序的自動化處理相應業務邏輯。Java反射是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態獲取的信息以及動態調用對象的方法的功能稱為java語言的反射機制。Java反射機制可以在運行時判斷任意一個對象所屬的類;在運行時構造任意一個類的對象;在運行時判斷任意一個類所具有的成員變量和方法;在運行時調用任意一個對象的方法;生成動態代理。Java語言具有很強的動態性就是因為反射機制的存在,它可以于運行時加載、探知、使用編譯期間完全未知的calss,獲悉其完整構造,并生成其對象實體、或對其屬性設置或調用其方法。在處理一條XML時,會出現不同的業務邏輯僅需要其一部分的數據,這時就需要制定一個配置文件用來記錄在XML中哪部分數據是需要哪個業務邏輯來處理的,相當于制定了一個XML與系統內部邏輯的一個“索引”,讓程序可以通過這個“索引”來自動根據傳進來的數據通過反射機制去實現相應的業務邏輯。所以在解析xml時得到的JavaBean完全可以利用Java反射來進行對本項目業務邏輯的調用與處理,實現項目的程序自動化。

多系統間的數據交互問題一直以來就是比較讓人頭痛的問題,尤其加上各種語言的不兼容以及各種業務邏輯的限制問題更甚?;贘ava的XML解析與反射設計模式就是用來解決這類問題的,它不但能幫助開發人員解決多系統間的數據交互問題還可以減少工作量,減少開發周期,減少BUG的產生,實現數據與項目內部邏輯一體化。

參考文獻:

[1]葉成蔭,何愉.《Java程序設計》雙語教學研究[J].價值工程,2012(04).

[2]沈軍,顧冠群.基于Java的XML解析器設計與實現[J].小型微型計算機系統,2002(12).

[3]桂紹鋼.Gei基于Java的XML解析器實現[J].電腦知識與技術,2010(27).

主站蜘蛛池模板: 特级做a爰片毛片免费69| 免费国产无遮挡又黄又爽| 久久综合伊人77777| 国产91丝袜在线观看| 中文国产成人精品久久| 国产91精品最新在线播放| 啦啦啦网站在线观看a毛片| 欧美人在线一区二区三区| 欧美狠狠干| 国产啪在线91| 国产粉嫩粉嫩的18在线播放91| 日韩亚洲综合在线| 亚洲国产日韩在线观看| 欧洲成人免费视频| 中文国产成人久久精品小说| 欧美日韩国产在线观看一区二区三区 | 人与鲁专区| 欧美亚洲激情| 日本一区二区不卡视频| 亚洲狼网站狼狼鲁亚洲下载| 精品在线免费播放| 欧美精品xx| 免费毛片全部不收费的| 欧美一级专区免费大片| 日韩高清在线观看不卡一区二区| 国产无码在线调教| 国产午夜精品鲁丝片| 浮力影院国产第一页| 国内精品久久久久鸭| 亚洲国产午夜精华无码福利| 在线观看国产小视频| 在线免费无码视频| 亚洲日韩精品伊甸| 国产视频你懂得| 成人午夜网址| 欧美午夜视频在线| 日韩精品久久久久久久电影蜜臀| 伊人福利视频| 国产一级无码不卡视频| 亚洲色大成网站www国产| 91伊人国产| 亚洲国产无码有码| 天堂在线亚洲| 国产迷奸在线看| 日韩精品一区二区三区中文无码| 国产精品色婷婷在线观看| 91视频免费观看网站| 婷婷色在线视频| 亚洲精品片911| 色综合五月| 日韩专区欧美| 国产国产人成免费视频77777| 另类综合视频| 国产在线日本| 久久综合九色综合97婷婷| 欧美亚洲国产日韩电影在线| 欧美色视频网站| 婷婷六月综合网| 一级香蕉人体视频| 中文字幕色在线| 毛片a级毛片免费观看免下载| 欧美日韩动态图| 91精品国产一区自在线拍| 草逼视频国产| 久久99这里精品8国产| 国产69囗曝护士吞精在线视频 | 91精品最新国内在线播放| 免费 国产 无码久久久| 欧美一级在线| 久精品色妇丰满人妻| 色综合久久88色综合天天提莫 | 日韩一区精品视频一区二区| 亚洲成AV人手机在线观看网站| 高清久久精品亚洲日韩Av| 高潮毛片免费观看| 欧美另类图片视频无弹跳第一页| 国产成人精品视频一区视频二区| 国产精品综合久久久| 国产成人精品视频一区视频二区| 99免费视频观看| 午夜不卡福利| 国产一区二区三区日韩精品 |