Spring Dynamic Modules 達到 1.0 版本!

工程 | Adrian Colyer | 2008 年 1 月 25 日 | ...

嗯,這比我們最初預期的要長得多,但我真的很高興地說 Spring Dynamic Modules 專案今天達到了 1.0 里程碑。 當我最初在 2006 年 9 月釋出關於此主題的文章時(“Spring OSGi 支援獲得動力”),最初的規範只是 Spring Framework 問題的附件,並且與更廣泛的 OSGi 社群的聯絡才剛剛開始形成。

快進到十八個月後,Spring Dynamic Modules 已成為 Spring 產品組合中的一個成熟的專案,其提交者來自 SpringSource、BEA 和 Oracle。 BEA 和 Oracle 都在使用 Spring Dynamic Modules 來構建他們自己的基於 OSGi 的產品(例如,參見“WebLogic Event Server - 為什麼我們使用 Spring”),並且 Spring Dynamic Modules 討論組擁有近 1000 名成員。 OSGi Alliance 本身已經成立了一個 企業專家組,SpringSource 是積極成員。

每當我們在會議上談論 OSGi 和 Spring Dynamic Modules 時,人們的興趣都非常高。 那麼,到底是怎麼回事呢?

OSGi 服務平臺是一個經過驗證的輕量級執行時,它提供了一個“Java 的動態模組系統”。 它已被用於從嵌入式裝置、汽車和電信應用程式到來自 IBM、BEA 和 Oracle 等公司的重要企業中介軟體產品的基礎。 Spring Dynamic Modules 專注於使您能夠利用 OSGi 服務平臺構建您自己的企業應用程式。 使用 Spring Dynamic Modules 構建並在 OSGi 服務平臺上執行的應用程式由一組對等 Spring 應用程式上下文(每個 OSGi 捆綁包一個)組成,這些上下文透過 OSGi 服務登錄檔進行互動。 它是一種面向服務的架構,但完全在您的 VM 中本地執行,使用常規 Java 引用來訪問服務。 以這種方式構建的應用程式的優點包括

  • 強大的模組化:每個模組的內部結構都保持私有,只有您選擇匯出到模組外部的包和 bean(服務)才能公開提供給其他模組。
  • 動態模組生命週期:您可以使用標準 OSGi 服務平臺生命週期設施獨立地安裝、解除安裝、啟動、停止和更新每個模組(應用程式上下文)。 Spring Dynamic Modules 提供對跨模組邊界的服務引用的智慧管理,以便即使在提供該服務的模組就地更新時,您也可以繼續使用常量引用。
  • 支援模組的版本控制。 可以同時部署同一 Java 包(以及庫)的多個版本。 OSGi 平臺負責將這些庫的使用者繫結到適當的版本,並確保您只看到實現版本相容介面的服務。
  • 對已安裝模組、它們匯入和匯出的服務和包以及模組如何在執行時連線在一起的運營洞察。
在其他模組保持執行的同時就地更新模組的能力可以真正提高開發過程中的生產力。

透過 1.0 版本,我們獲得了一個針對模組生命週期和服務整合的可靠解決方案。 在 OSGi 服務平臺上使用現有(非為在 OSGi 上執行而編寫的)企業庫時,類和資源載入以及可見性方面仍然存在陷阱,需要加以注意。 我們相信,我們已經在最近釋出的 Spring Framework 2.5 中解決了 Spring 本身的所有這些問題。 下一個版本的 Spring Dynamic Modules 的重點將是為其他常用企業庫提供實用的解決方案,從而使編寫在 OSGi 上執行的 Spring 驅動的 Web 應用程式變得更加容易。

獲取 Spring 新聞資訊

訂閱 Spring 新聞資訊,保持聯絡

訂閱

搶先一步

VMware 提供培訓和認證,以加速您的進步。

瞭解更多

獲取支援

Tanzu Spring 在一個簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將舉行的活動

檢視 Spring 社群中所有即將舉行的活動。

檢視全部