專家Isvy談Spring 3.0
能給我們透露一下Spring 3.0將會有什么新功能嗎?
Michael:就等著你問呢。Spring 3.0會帶來不少好東西,我就挑幾個來說吧。Spring 3.0會加入幾個新的xml命名空間,比如“orm”和“web”。它們將會幫你的應(yīng)用減少不少配置代碼。還有,現(xiàn)在對REST感興趣的Spring用戶越來越多,所以Spring 3.0也會全面集成REST。我們還在忙著開發(fā)很多功能,比如Spring Expression Language、Spring @MVC用的聲明式驗(yàn)證、支持Portlet 2.0等等。至于向后兼容的方面,我必須說明Spring 3.0將會完全基于Java 5。所以如果你現(xiàn)在正在用Java 1.4,那么必須先遷移到Java 5才能用Spring 3.0。
那么在Web技術(shù)方面Spring有什么新招?
Michael:首先我們有Spring MVC,有時候也叫做Spring @MVC。從名字就可以看出來,@MVC是一個注解驅(qū)動的MVC框架。一個非常靈活、非常容易擴(kuò)展的框架。如果你的應(yīng)用需要富UI和AJAX功能,我建議你看看Spring JavaScript。這個JavaScript庫可以幫你做部分提交(partial submits)、客戶端驗(yàn)證之類。我還應(yīng)該提一下Spring Web Flow。如果你的應(yīng)用在某些地方要求很復(fù)雜的導(dǎo)航,那就應(yīng)該用它。舉個例子,比如要在網(wǎng)上訂機(jī)票,你需要填寫好幾頁的表單,包含的數(shù)據(jù)很多(航班信息、個人信息、付款信息等等)??赡芤?、6頁才能完成交易過程。這么一組頁面我們叫做一個會話(conversation)。Web Flow可以幫你:
◆在整個會話過程中管理瀏覽器的后退和刷新按鈕事件。
◆將數(shù)據(jù)保存在一個“會話(conversation)”作用域,并且當(dāng)會話結(jié)束時數(shù)據(jù)會自動flush。
請再介紹一下其它Spring項目,比如Spring Batch、Spring Security、Spring Integration,這一串夠長的,都是什么呀?
Michael:Spring項目一大把,完整名單請見http://www.springsource.org/projects。每個項目都有專門的技術(shù)領(lǐng)域。比如Spring Batch幫你用很少的代碼就能在Java中完成復(fù)雜的批量處理程序。它可以很方便地在純文本、XML文件中讀取數(shù)據(jù),還針對數(shù)據(jù)庫大批量數(shù)據(jù)處理的情況(比如更新一百萬行)作了優(yōu)化。 Spring Security就是以前的ACEGI項目,安全方面凡是JEE沒有提供的它都做:cookie身份驗(yàn)證、用戶記憶(remenber-me)、單點(diǎn)登錄(使用CAS)。Spring Integration是我們產(chǎn)品線的新成員之一。它為基于Spring的應(yīng)用提供簡單消息功能,并且使應(yīng)用通過簡單的適配器就能夠與外部系統(tǒng)集成。
能不能再說說OSGi和SpringSource DM Server?
Michael:先來個簡單定義吧。SpringSource DM Server是我們開發(fā)的一個開源應(yīng)用服務(wù)器。它不是“傳統(tǒng)的”應(yīng)用服務(wù)器,因?yàn)樗贠SGi的基礎(chǔ)上用了一種新方法去搭建Java應(yīng)用*。 OSGi是一個很強(qiáng)大的標(biāo)準(zhǔn),它把你的一個應(yīng)用分成許多bundle。每個bundle都是獨(dú)立的,并且聲明了一系列它會暴露出的服務(wù)。Bundle可以熱部署和更新,無論開發(fā)環(huán)境還是生產(chǎn)環(huán)境都可以。
我相信以后會有越來越多應(yīng)用需要這樣的功能。如果你想在應(yīng)用中用純OSGi,那么必須寫很多支持代碼才能集成它。我們在DM Server上費(fèi)了很多功夫,保證你只花極小的成本就能用上OSGi,你只需要寫業(yè)務(wù)代碼和Spring配置就夠了。本來就應(yīng)該這樣:)。
好了Michael,謝謝你的回答。
Michael:不客氣。
【編輯推薦】