D02.深入 Java SE/API‎ > ‎Java 7‎ > ‎

模組化(Modularity)/OSGI

現在的Java程序員,或者說所有語言的程序員,都面臨著日益增多的開源和商業類庫,往往要花費很長時間來管理其依賴關係。今天的一個普通企業應用程序往 往要依賴數十個外部JAR文件,其本身往往就能包含數十個不同團隊開發的更小內部工程。我們一直在堅持尋找更好的方式來管理日益複雜的依賴關係,以使我們 的開發更具重用性,部署更加完整。現在出現了越來越多的類似Maven的依賴關係管理系統,以及諸如OSGi之類的運行時部署系統,這一點正是反應了這種 需求的增長趨勢。

模組系統的作用位於邏輯分離和物理分離之間。它強調模組分離,但各個模組仍然部署到同一個JVM中,而且模組間的通訊由簡單傳統的方法調用組成,因此不會 有運行時的開支負擔。在Java生態系統中最流行的模組框架是OSGi。它是一個成熟的規範,具有幾個不同的實現。在OSGi中,模組被稱作 bundle,每個bundle等同於一個JAR。每個bundle也包含一個 META-INF/MANIFEST.MF文件,這個文件會宣佈導出哪些包(package)以及導入哪些包。只有那些導出包中的類才能被其他 bundle所使用,而其他包都只面向包的內部成員,包裡的類也只能在自身bundle中使用。

Jigsaw項目簡介:Java 7的新模組系統, http://developer.51cto.com/art/200906/131088.htm

  1. 6月5日外電頭條:探秘Java 7模組化 類路徑永遠消失
  2. 走進Java 7中的模組系統
  3. Java 7將向細顆粒並行化發展
  4. Java 7路線圖更新 未包含閉包特性
  5. Java 7新特性展望 語言本身的改變會很少
  6. 走進Java 7中的模組系統

Comments