領先一步
VMware 提供培訓和認證,以加速您的進步。
瞭解更多自上週三釋出 SpringSource 應用平臺以來,許多開發者下載了 1.0.0 Beta 版本並開始試用該平臺。因此,人們開始問:“我如何在平臺上部署我的應用,以及我有哪些部署和打包選項?” 此外,開發者們迫切希望看到可執行的示例。為了回應這一需求,S2AP 團隊將在未來幾周釋出幾個示例應用,演示這些功能以及更多內容,但在您獲取這些示例之前,我想先向您介紹一下該平臺中可用的部署和打包選項的高階概覽。閱讀本文後,您將能夠快速上手這些示例以及您自己的應用。
正如 Rob 上週在他的帖子《介紹 SpringSource 應用平臺》中提到的,該平臺支援以下形式打包的應用
當您將應用部署到該平臺時,每個部署工件(例如,單個 bundle、WAR 或 PAR)會透過一個部署管道。這個部署管道支援“個性化部署器”的概念,它們負責處理具有特定個性(即應用型別)的應用。該平臺的 1.0.0 版本原生支援與上述每種打包選項相對應的個性化部署器。此外,部署管道可以透過新增其他個性化部署器進行擴充套件,該平臺的未來版本將支援諸如批處理、Web 服務等個性化功能。
現在讓我們仔細看看每種支援的部署和打包選項,以探索哪種最適合您的應用。
SpringSource 應用平臺的核心是一個 OSGi 容器。因此,任何 OSGi 相容的 bundle 都可以直接在平臺上未經修改地部署。如果您想透過 OSGi 服務登錄檔在容器內全域性釋出或消費服務,通常會將應用部署為一個單獨的 bundle 或一組獨立的 bundle。然而請注意,由於 PAR 格式的作用域特性,獨立的 bundle 將無法跨應用邊界消費服務。換句話說,一個獨立的 bundle 無法引用部署在 PAR 內的模組的服務。
對於 Web 應用歸檔檔案 (WAR),SpringSource 應用平臺支援以下三種格式。
這些格式中的每一種都在從標準 Java EE WAR 到 OSGi 化 Web 應用的增量遷移路徑中扮演著獨特的角色。
正如 Rob 已經指出的,“標準 WAR 檔案在平臺中直接支援。在部署時,WAR 檔案被轉換為 OSGi bundle 並安裝到 Tomcat 中。所有標準的 WAR 契約都會被遵守,您現有的 WAR 檔案應該可以直接放入並部署而無需更改。” 支援標準、未經修改的 WAR 檔案,使您可以在現有 Web 應用上試用 SpringSource 應用平臺,然後逐步遷移到共享庫 WAR、共享服務 WAR 和 Web 模組格式。
有關您可以使用的庫的詳細資訊,請檢視 SpringSource 企業 Bundle 倉庫。此外,Andy Wilkinson 將於本週晚些時候釋出一篇部落格,解釋如何在您的應用和 SpringSource 應用平臺中最大限度地利用 Bundle 倉庫。敬請關注。
如果您正在構建一個基於 Spring MVC 的 Web 應用並將其作為 Web 模組,您無需擔心為您的 DispatcherServlet 配置一個根 WebApplicationContext 或 ApplicationContext。根據您 Web 模組的 /META-INF/MANIFEST.MF 中的元資料,平臺將即時為您自動生成一個配置恰當的 web.xml,並且您的應用將使用 Spring-DM 為您的 Web 模組建立的 ApplicationContext。未來版本還將增加對簡化配置基於 Spring Web Flow 的 Web 應用的支援。
下圖以圖形方式描繪了從標準 WAR 到 Web 模組的遷移路徑。如您所見,庫從部署工件內部移到 Bundle 倉庫。類似地,服務從 WAR 內部移到外部 bundle 中,並透過 OSGi 服務登錄檔訪問。此外,隨著您向 Web 模組遷移,部署工件的總體佔用空間會減小。
此外,PAR 限定了您的應用在平臺內的模組範圍。範圍限定提供了物理和邏輯的應用邊界,保護您的應用內部不受平臺內其他任何應用的影響。這意味著您的應用無需擔心與其他正在執行的應用衝突(例如,在 OSGi 服務登錄檔中)。您可以獲得載入時織入、類路徑掃描、上下文類載入等支援,並且平臺會為您完成繁重的工作,使所有這些在 OSGi 環境中無縫執行。如果您想充分利用 SpringSource 應用平臺和 OSGi 提供的所有優勢,將您的應用打包和部署為 PAR 絕對是推薦的選擇。
如果您還沒有這樣做,我鼓勵您加入Beta 計劃並親自試用 SpringSource 應用平臺。
您可以在使用者指南和程式設計師指南中找到最新的文件,如果您在部署應用時遇到任何問題,或者對如何改進平臺有任何建議,請隨時建立 JIRA 問題。
最後同樣重要的是,請務必關注SpringSource 團隊部落格上即將釋出的文章,以瞭解平臺的相關新聞,並檢視可執行的示例,包括一個已模組化並打包為 PAR 的 OSGi 化 Spring PetClinic 示例應用。