?
? ????? PHP ??? ???? ??? ?? ??
自從Spring 2.5之后,我們就可以RAR文件的形式部署Spring ApplicationContext,該文件將應(yīng)用上下文,所有需要的bean以及JARs文件封裝到一個(gè)J2EE RAR部署單元中。這與引導(dǎo)啟動(dòng)一個(gè)獨(dú)立的 ApplicationContext 是一樣的,只是它要寄居于J2EE環(huán)境內(nèi),以便能夠訪問(wèn)J2EE服務(wù)器提供的基本功能。這種RAR的部署對(duì)于那些常見(jiàn)的應(yīng)用場(chǎng)景準(zhǔn)備以一種更加“自然”的方式去部署一個(gè)沒(méi)有頭(headless)的WAR文件――就是說(shuō):一個(gè)沒(méi)有任何HTTP入口點(diǎn),而只用于在J2EE環(huán)境中啟動(dòng)一個(gè)Spring ApplicationContext的WAR文件。
RAR部署對(duì)于那些不需要任何HTTP入口點(diǎn)而僅包含消息節(jié)點(diǎn)與任務(wù)安排等的應(yīng)用上下文來(lái)說(shuō)非常理想。在這樣的上下文中的Beans可以使用應(yīng)用服務(wù)器資源,例如JTA事務(wù)管理,綁定到JNDI的JDBC數(shù)據(jù)源,JMS ConnectionFactory實(shí)例,同時(shí)這些beans還可以注冊(cè)到平臺(tái)上的JMX服務(wù)器――所有這些都通過(guò)Spring標(biāo)準(zhǔn)的事務(wù)管理與JNDI以及JMX支持的功能來(lái)實(shí)現(xiàn)的。應(yīng)用組件也可以通過(guò)Spring的TaskExecutor
接口與應(yīng)用服務(wù)器的JCA WorkManager進(jìn)行交互。
查看SpringContextResourceAdapter類(lèi)的JavaDoc,以了解關(guān)于RAR部署的配置細(xì)節(jié)。
對(duì)于簡(jiǎn)單的部署,您要做的事情如下:將所有應(yīng)用類(lèi)打包成RAR文件(此文件是標(biāo)準(zhǔn)的 JAR 文件,只是擴(kuò)展名不同),將所有需要的jars包添加到該RAR文件的根目錄中,添加一個(gè)”META-INF/ra.xml“部署描述符(參見(jiàn)SpringContextResourceAdapter
的JavaDoc)及相應(yīng)的Spring XML bean定義文件(典型情況下為"META-INF/applicationContext.xml")最后把這個(gè) RAR 文件放到您的應(yīng)用服務(wù)器的部署目錄中!
注意:這個(gè)RAR部署單元一般是自包含的;他們沒(méi)有將組件暴露給“外部”世界,甚至也沒(méi)有暴露給應(yīng)用中的其他模塊。我們一般使用JMS(多個(gè)模塊共享)與基于RAR的ApplicationContext進(jìn)行交互。例如調(diào)度任務(wù),對(duì)新加入文件系統(tǒng)的文件作出反應(yīng)(或者類(lèi)似的)。實(shí)際上,如果需要考慮到外界的同步訪問(wèn),它可以導(dǎo)出RMI端點(diǎn),這個(gè)過(guò)程也同樣適用于同一臺(tái)機(jī)器上的其他應(yīng)用模塊。