Spring Web Services框架入門研究
關(guān)于Spring Web Services框架
Spring web services框架(以下簡稱:Spring WS)是springframework東家SpringSource公司旗下的一個子項目。由于懷著對spring框架的熱愛,于是打算學習下這個框架。
Spring Web Services框架的特點:
◆Spring框架的支持,你可以重用Spring的所有特性。
◆Spring WS使用Contract First(自頂向下)的設(shè)計方式。Spring WS不支持Contract Last(自底向上)
◆支持幾乎所有的XML API,處理傳入XML消息的時候就不限于JAX-P,可以是任意的XML API,選擇你所擅長的。
◆靈活的XML Marshalling,Object/XML mapping產(chǎn)品的支持,包括JAX-B1,2,XMLBean以及Castor等等
◆Security支持,集成了Acegi.實現(xiàn)web services 認證。
Spring Web Services框架的分析
為什么使用Contract First.***實踐認為:使用自頂向下的設(shè)計方式也就是采用XML/XSD to JAVA可以獲得更多的益處,包括以下幾點.
◆重用性,web services或者SOA的很大優(yōu)勢在于對業(yè)務(wù)的快速響應(yīng),那么設(shè)計與開發(fā)web services的時候如果能夠在服務(wù)的重用上做足,做強,無疑在以后業(yè)務(wù)的響應(yīng)上會帶來莫大的好處,使用Contract First,使用XML/XSD定義服務(wù),你可以獲得重用,而java則很難做到這一點。
◆性能,web servers的性能一直是眾多人士關(guān)注的,采用Contract Last經(jīng)常會由于java的引用造成內(nèi)存中存在眾多的reference,假設(shè)一個java 對象引用了5個以上的其他對上,再把這些對象轉(zhuǎn)換成XML,可想而知。必然加大內(nèi)存的開銷,(XML里面表述起來就像有5個字節(jié)點一樣,那么更多呢?)采用Contract First,你很明白的所想要的服務(wù),你通過撰寫XSD來描述你的服務(wù),你很清楚你的引用。
◆版本,使用 Contract Last的時候,快速響應(yīng)的服務(wù)是會經(jīng)常修改來適應(yīng)新的業(yè)務(wù)要求,你發(fā)布服務(wù)通過java類來開始,那么新的服務(wù)在java中意味著新的接口以及新的實現(xiàn),那么怎么辦?廢棄原來的?也許原來的還在使用,那么你得保持兩個服務(wù)。采用Contract Last,由于Contract的松散耦合,它允許你存在兩套服務(wù)的同時,并且只有一個實現(xiàn)。
這樣造成了Contract Last的問題:自底向上生成經(jīng)常會得到無法重用的類型定義以及多個定義為表示語義等效信息的類型。相比而言: XML 模式規(guī)范定義范圍比 Java 更廣的用于描述消息結(jié)構(gòu)的構(gòu)造。其中包括各個選擇、限制的派生、Annotation 及其他。因此,與采用其他方式相比,使用 WSDL 和 XSD 定義接口并生成框架 Java 代碼的方式更好
比較二者,其實***優(yōu)劣的莫過于服務(wù)的變化性,Contract Last會讓服務(wù)難于修改和快速變更,難于重用,用java開始設(shè)計,那么你***保證你的服務(wù)是***不改變的,或者事先你得反復審查你的服務(wù)接口。使其盡量保持不變性。
【編輯推薦】