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