?
このドキュメントでは、 php中國(guó)語ネットマニュアル リリース
最后這部分包含一些細(xì)節(jié)問題,在你從Spring 1.2/2.0升級(jí)到Spring 2.5時(shí)可能遇到。
從Spring 2.0.x應(yīng)用程序升級(jí)到Spring 2.5只需要簡(jiǎn)單的把Spring 2.5的jar復(fù)制到你應(yīng)用程序目錄結(jié)構(gòu)中的合適位置即可。我們高度建議任何運(yùn)行在JDK 1.4.2或更高版本的Spring 2.0應(yīng)用程序升級(jí)到Spring 2.5,特別是運(yùn)行在Java 5或更高版本上的,Spring 2.5帶來了巨大的配置便利和性能提高。
從Spring 1.2.x升級(jí)是否平滑取決于你在代碼中使用了多少Spring API。Spring 2.0刪除了在Spring 1.2.x代碼中標(biāo)注為“deprecated”的絕大部分類和方法,因此如果你使用了這些類或者方法,你當(dāng)然得使用替代的類和方法(下面有一個(gè)列表)。
在配置方面,Spring 1.2.x風(fēng)格的XML配置是100%信心保證和Spring 2.5兼容的。當(dāng)然如果你還在使用Spring 1.2.x DTD,你沒辦法使用一些新的Spring 2.0功能(例如scopes , easier AOP 和 transaction configuration),但是沒有什么會(huì)出錯(cuò)。
建議的升級(jí)策略是將Spring 2.5 jar放入,以得到新版本的好處(例如bug修正,優(yōu)化,等等)。然后,以一種循序漸進(jìn)的方式,開始選擇使用新的Spring 2.5功能和配置。例如,你可以開始用新的Spring 2風(fēng)格來配置你的aspects,完全可以將其中的90%仍然使用老的Spring 1.2.x配置(引用1.2.x DTD),剩下的10%使用新的Spring 2 配置(引用2.0/2.5 DTD或者XSD)。記住,將Spring 2.5類庫替換后,你并不是非得升級(jí)你的XML配置不可。
如需了解全部變化,請(qǐng)參考Spring Framework 2.0發(fā)布包頂層目錄里的'changelog.txt'
文件。
Spring 2.5對(duì)JDK 1.3已經(jīng)不再支持,因?yàn)镾un官方從2006晚期已經(jīng)正式將JDK 1.3淘汰。請(qǐng)升級(jí)到JDK 1.4.2或更高版本。
如果你必須使用只支持JDK 1.3的應(yīng)用服務(wù)器,例如WebSphere 4.0或5.0,我們建議你使用Spring Framework版本2.0.7/2.0.8,它們?nèi)匀恢С諮DK 1.3。
在Spring 2.5中, Spring Web MVC 不再是
'spring.jar'
文件的一部分. Spring MVC以'spring-webmvc.jar'
和'spring-webmvc-portlet.jar'
文件形式在發(fā)行包的 lib/modules
目錄中存在。
另外,對(duì)Struts 1.x的支持被獨(dú)立成 'spring-webmvc-struts.jar'
。
注意: 經(jīng)常被使用的Spring的DispatcherServlet
也是Spring Web MVC框架的一部分。 因此,就算你只是為了遠(yuǎn)程訪問(例如,暴露Hessian或者 HTTP調(diào)用服務(wù))而使用DispatcherServlet
,你也得將'spring-webmvc.jar'
(或者 'spring-webmvc-portlet/struts.jar'
)放到'spring.jar'
旁邊去。
Spring 2.0的 'spring-jmx.jar'
和 'spring-remoting.jar'
已經(jīng)被轉(zhuǎn)移到 Spring 2.5的'spring-context.jar'
(針對(duì) JMX 和非HTTP 遠(yuǎn)程支持),部分轉(zhuǎn)移到
'spring-web.jar'
(針對(duì)HTTP 遠(yuǎn)程支持)。
Spring 2.0的 'spring-support.jar'
被改名為 'spring-context-support.jar'
,
更好的表達(dá)其真實(shí)含義。
'spring-portlet.jar'
被改名為 'spring-webmvc-portlet.jar'
,表明它是Spring Web MVC framework的子模塊之一。
類似的, 'spring-struts.jar'
被改為'spring-webmvc-struts.jar'
。
Spring 2.0的'spring-jdo.jar'
,
'spring-jpa.jar'
,
'spring-hibernate3.jar'
,
'spring-toplink.jar'
和 'spring-ibatis.jar'
被合并到Spring 2.5大粒度的'spring-orm.jar'
中。
Spring 2.5的 'spring-test.jar'
取代了'spring-mock.jar'
,表達(dá)其對(duì)test context framework的強(qiáng)烈關(guān)注。
注意 'spring-test.jar'
包含了上個(gè)版本 'spring-mock.jar'
中的一切,因此如果是單元或集成測(cè)試,可以直接取代。
Spring 2.5的 'spring-tx.jar'
取代了 'spring-dao.jar'
和'spring-jca.jar'
文件,表達(dá)其對(duì)transaction framework的強(qiáng)烈關(guān)注。
Spring 2.5 將其jar文件直接作為OSGi兼容的bundle。這使得在OSGi環(huán)境中使用Spring 更加方便,不再需要定制打包了。
Spring 2.0的XSD在描述Spring XML元數(shù)據(jù)格式方面比先前的DTD更豐富。 舊的DTD仍然得到支持,但如果可能我們鼓勵(lì)在bean定義文件頭部引用XSD文件。
有一點(diǎn)被改變了,那就是定義bean作用域的方式。如果你使用的是Spring 1.2 DTD,那么你能繼續(xù)用'singleton'
屬性。
如果你選擇引用新的Spring 2.0 DTD,它不允許使用'singleton'
屬性,
那么可以用'scope'
屬性來定義bean的生命周期作用域。
一些以前被標(biāo)記為@deprecated
的類和方法Spring 2.0代碼庫中被完全刪除了。
Spring團(tuán)隊(duì)決定把2.0版本作為一個(gè)新的開始,那些被deprecated的代碼應(yīng)該被除去而不是在可預(yù)見的未來繼續(xù)在代碼中出現(xiàn)。
如前所述,如需了解全部變化,請(qǐng)參考Spring Framework 2.0發(fā)布包頂層目錄里的'changelog.txt'
文件。
下面的類/接口已經(jīng)從Spring 2.0的代碼中刪除了:
ResultReader
: 使用RowMapper
接口代替。
BeanFactoryBootstrap
: 考慮使用一個(gè)BeanFactoryLocator
或是自定義引導(dǎo)類代替
Spring 2.0開始,請(qǐng)注意Spring主代碼中的Apache OJB支持被完全刪除了; 但仍然可以在Spring Modules項(xiàng)目中找到Apache OJB的集成庫。
請(qǐng)注意iBATIS SQL Maps 1.3支持被完全去除了。如果你還在使用iBATIS SQL Maps 1.3, 請(qǐng)升級(jí)到iBATIS SQL Maps 2.0/2.1。
Spring 2.5中,對(duì) Hibernate 2.1 和 Hibernate 3.0 的支持已經(jīng)去除。請(qǐng)升級(jí)到Hibernate 3.1或更高版本。
如果你需要繼續(xù)使用Hibernate 2.1或3.0,我們建議你繼續(xù)使用Spring 2.0.7/2.0.8,這些版本仍然支持Hibernate的那些版本。
Spring 2.5中,對(duì)JDO 1.0 的支持被去除。請(qǐng)升級(jí)到JDO 2.0或更高版本。
如果你需要繼續(xù)使用JDO 1.0,我們建議你繼續(xù)使用spring 2.0.7/2.0.8,這些版本仍然支持JDO 1.0。
從Spring 2.0起,UrlFilenameViewController
所決定的view名字現(xiàn)在考慮了request中的嵌套路徑。這是對(duì)原始 UrlFilenameViewController
約定的重大修改,意味著如果你從Spring 1.x升級(jí)到Spring 2.x,并且你在使用這個(gè)類,你可能必須小小的修改你的Spring Web MVC配置。請(qǐng)參考UrlFilenameViewController
的類Javadoc,來查看新的view name determination的約定的示例。