Spring 2.0新功能
Spring框架開發(fā)團(tuán)隊(duì)已經(jīng)正式發(fā)布了Spring 2.0最終版,Spring 2.0的發(fā)布基于兩個主題:使用簡單化和功能強(qiáng)大化。Spring框架一直傳遞給人一種理念:提供一個簡單、高產(chǎn)模型,讓其可以根據(jù)需要處理最復(fù)雜的應(yīng)用。在2.0版中這兩方面都有了很大的改進(jìn),許多任務(wù)變得簡單了,而框架適用的范圍變大了,還增加了一些重大的新功能。
Spring2.0 向后兼容
Spring 2.0幾乎是完全向后兼容的,大多數(shù)用戶可以直接升級到Spring 2.0,只需要用Spring 2.0中包含的1.2.8 JAE文件替換現(xiàn)有版本中的相應(yīng)文件即可。RC版的發(fā)布?xì)v經(jīng)9個月之久,經(jīng)過了充分的測試和來自9 milestones的社區(qū)回饋,以確保向后兼容和Spring框架的高質(zhì)量標(biāo)準(zhǔn)。“Spring 2.0通過一種自然和無縫的風(fēng)格引入了很多精巧和擴(kuò)展功能,保留了所有核心API和配置工具,”Spring框架的開發(fā)領(lǐng)導(dǎo)人、Interface21的副總裁兼著名工程師Juergen Hoeller說到,“新的基于schema的XML配置模型可以幫助你實(shí)現(xiàn)更方便、更強(qiáng)大的配置功能,對Spring核心內(nèi)容沒有重大影響。”
Springwork的創(chuàng)始人兼Interface21的CEO Rod Johnson表示,“我們相信對Spring框架用戶和企業(yè)Java來說,Spring 2.0是一個重大的進(jìn)步,和我交流的用戶對新功能感到非常激動,他們很多人一直在迫切的希望把這些新功能應(yīng)用到產(chǎn)品中去。Spring框架倡導(dǎo)從簡單 Java對象(POJOs)開發(fā)復(fù)雜應(yīng)用程序的概念,繼續(xù)以POJO開發(fā)為基準(zhǔn)。事實(shí)上,Spring 2.0的完全向后兼容確保了基于POJO模型的強(qiáng)大功能,以及Spring框架體系的品質(zhì)和靈活性。并且可以給已經(jīng)使用Spring用戶提供一個平穩(wěn)的升級路徑”。
Spring 2.0新功能
1、在核心控制翻轉(zhuǎn)容器(IoC)中增強(qiáng)了很多功能,包括可以定制Spring beans的作用域(根據(jù)HTTP session和Request的不確定范圍),進(jìn)一步提高擴(kuò)展性,兼容建立在Spring框架基礎(chǔ)上的第三方框架或產(chǎn)品,例如應(yīng)用于下一代WebLogic服務(wù)器的Pitchfork項(xiàng)目http://www.interface21.com/pitchfork)。
2、可擴(kuò)展的XML配置功能,通過引入XML Schema,可以創(chuàng)建命名空間(namespace)來定義特定元素作為程序塊,以增強(qiáng)其重用性。這個功能使開發(fā)人員可以在Spring本身內(nèi)使用定制的標(biāo)簽,使許多日常工作變得非常簡單,同時(shí)它為第三方產(chǎn)品提供了極大的便利,讓其在內(nèi)部使用Spring,例如Mule,這對于那些想使用跨越大型項(xiàng)目配置擴(kuò)展的大企業(yè)來說,是非常重要的一個改進(jìn)。
3、Spring 2.0在面向切面編程(AOP)方面也增加了支持,Spring 2.0改善了Spring的AOP框架,并且充分利用強(qiáng)大的AspectJ pointcut表示語言,它提供了一個復(fù)雜的方式來確定要執(zhí)行的操作。這種AspectJ編程模型帶來了很多優(yōu)點(diǎn),除了基于偵聽的編程模型外,還有 Type-safe匹配,可以避免潛在的方法參數(shù)和返回類型的錯誤。
4、針對JMS消息的改進(jìn)功能,在Spring 2.0之前,Spring的JMS的作用僅局限于產(chǎn)生消息。這個功能(封裝在 JmsTemplate 類中)很好,但是,它沒有描述完整的JMS堆棧,比如像消息的異步產(chǎn)生和消耗。JMS堆棧缺少的這一部分在Spring 2.0中已經(jīng)添加,同時(shí)提供對消息異步消耗的完整支持。
5、如果你有幸使用Java 5(Tiger)進(jìn)行項(xiàng)目開發(fā),你將很新奇地發(fā)現(xiàn),Spring 2.0對于Tiger有了非常強(qiáng)大的支持。
6、Spring 2.0現(xiàn)在支持用非Java語言編寫的bean,當(dāng)前支持的動態(tài)語言包括JRuby,Groovy和BeanShell。
7、在Spring 2.0里,Web層支持得到了充分地改進(jìn)和擴(kuò)展。Spring 2.0擁有一個豐富的JSP標(biāo)簽庫,在使用Spring MVC時(shí),編寫JSP頁面變得更加簡單;Spring團(tuán)隊(duì)自信地認(rèn)為它將滿足所有在JIRA上投票的開發(fā)人員。
在 Spring 2.0 之前不提供的UI Taglib,在新版中也得到了支持,配置文件也進(jìn)行了必要的簡化。雖然Spring MVC從框架設(shè)計(jì)角度來說遠(yuǎn)遠(yuǎn)不如Webwork那么有創(chuàng)意,但是也是一步一個腳印的在改進(jìn),再配合上各種外圍框架例如Spring Webflow等的支持,可以預(yù)見Spring MVC會成長為Webwork的勁敵。
8、Spring不僅支持傳統(tǒng)(基于Servlet)的Web開發(fā),也支持JSR-168 Portlet開發(fā)。
9、Spring 2.0提供了JPA抽象層,在所起的作用與常規(guī)使用模式上,類似于Spring的JDBC抽象層。
Spring提供這些功能的完善支持意義深遠(yuǎn),體現(xiàn)了Spring是一個有遠(yuǎn)大目標(biāo)的框架,因?yàn)檫@些功能都是J2EE規(guī)范所要求提供的功能。一旦 Spring2.0對這些功能提供了完善的支持,傳統(tǒng)的Java企業(yè)應(yīng)用完全遷移到Spring框架上面應(yīng)該是一件很容易的事,從長遠(yuǎn)來看,Spring 有可能成為Java企業(yè)開發(fā)的事實(shí)平臺和事實(shí)標(biāo)準(zhǔn)。
【編輯推薦】