| 書[0名0]: | 深入理解OSGi:Equi[0no0]x原理、應用與z1u1i佳實踐(基於z1u1i新OSGi R5.0規範撰寫,繼《深入理解Java虛擬 [1機1] 》後的又一實力之作)[按需印刷]|3022158 |
| 圖書定價: | 79元 |
| 圖書作者: | 周誌明;謝小明 |
| 齣版社: | [1機1] 械工業齣版社 |
| 齣版日期: | 2013-02-01 0:00:00 |
| ISBN號: | 9787111408871 |
| 開本: | 16開 |
| 頁數: | 414 |
| 版次: | 1-1 |
| 作者簡介 |
| 周誌明,資深Java技術專傢,對JavaEE企業級應用開發、OSGi、Java虛擬 [1機1] 和工作流等都有深入的研究,並在[0大0]量的實踐中積纍瞭豐富的經驗。尤其精通Java虛擬 [1機1] ,撰寫瞭[0大0]量與JVM相關的經典文章,被各[0大0]技術社區爭相轉載,是ITeye等技術社區公認的Java虛擬 [1機1] 方麵的[0領0]袖人物之一,著有經典著作《深入理解Java虛擬 [1機1] :JVM高級特性與佳實踐》(2年內重印十數次,獲得業界多個圖書奬項),廣獲讀者好[0評0]。現任遠光軟件股份有限公司平颱開發部經理兼平颱架構師,先後參與過[0國0]傢電網、南方電網等多個[0大0]型ERP項目的平颱架構工作,對軟件係統架構也有深刻的認識和體[0會0]。謝小明,資深Java技術專傢,具有豐富的JavaEE企業級應用開發開發經驗,對OSGi、Spring、Hibernate等技術和框架有比較深入的研究和認識。喜歡鑽研運行與JVM之上的其他語言,如Scala和Clojure等。現任遠光軟件股份有限公司平颱開發部平颱架構師,先後參加與過[0國0]傢電網、南方電網等多個[0大0]型ERP項目的平颱架構工作。 |
| 內容簡介 |
| 《深入理解OSGi:Equi[0no0]x原理、應用與佳實踐》是原創Java技術圖書[0領0]域繼《深入理解Java虛擬 [1機1] 》後的又一實力之作,也是全球[0首0]奉基於新OSGi R5.0規範的著作。理論方麵,既全麵解讀瞭OSGi規範,深刻揭示瞭OSGi原理,詳細講解瞭OSGi服務,又係統地介紹瞭Equi[0no0]x框架的使用方[0法0],並通過源碼分析瞭該框架的工作 [1機1] 製:實踐方麵,不僅包含一些典型的案例,還總結瞭[0大0]量的佳實踐,[0極0]具實踐指導意義。 全書共14章,分4個部分。[0第0]一部分([0第0]1章):走近OSGi,主要介紹瞭什麼是OSGi以及為什麼要使用OSGi。[0第0]二部分([0第0]2~4章):OSGi規範與原理,對新的OSGiR5.0中的核心規範進行瞭全麵的解讀,[0首0]先講解瞭OSGi模塊的建立、描述、依賴關係的處理,然後講解瞭Bundle的啓動原理和調度管理,後講解瞭與本地及遠程服務相關的內容。[0第0]三部分:OSGi服務與Equi[0no0]x應用實踐([0第0]5~11章),不僅詳細講解瞭OSGi服務綱要規範和企業級規範中常用的幾個子規範和服務的技術細節,還通過一個基於Equi[0no0]x的BBS案例演示瞭Equi[0no0]x的使用方[0法0],重要的是還通過源碼分析瞭Equi[0no0]x關鍵功能的實現 [1機1] 製和原理。[0第0]四部分:佳實踐([0第0]12~14章),總結瞭[0大0]量關於OSGi的佳實踐,包括從Bundle如何命[0名0]、模塊劃分、依賴關係處理到保持OSGi動態性、管理程序啓動順序、使用API基綫管理模塊版本等各方麵的實踐技巧,此外還介紹瞭SpringDM的原理以及如何在OSGi環節中進行程序測試。 |
| 目錄 |
《深入理解OSGi:Equi[0no0]x原理、應用與佳實踐》 前言 [0第0]一部分 走近OSGi [0第0]1章 Java模塊化之路 / 2 1.1 什麼是OSGi / 2 1.1.1 OSGi規範的演進 / 4 1.1.2 Java模塊化規範之爭 / 7 1.2 為什麼使用OSGi / 11 1.2.1 OSGi能讓軟件開發變得更容易嗎 / 12 1.2.2 OSGi能讓係統變得更穩定嗎 / 13 1.2.3 OSGi能讓係統運行得更快嗎 / 14 1.2.4 OSGi能支撐企業級開發嗎 / 15 1.3 本章小結 / 16 [0第0]二部分 OSGi規範與原理 [0第0]2章 模塊層規範與原理 / 18 2.1 OSGi規範概要 / 18 2.2 Bundle / 20 2.3 描述元數據 / 21 2.3.1 預定義標記 / 21 2.3.2 使用可視化工具 / 27 2.4 Bundle的組織與依賴 / 31 2.4.1 導齣和導入Package / 31 2.4.2 約束規則與示例 / 38 2.4.3 校驗Bundle有效性 / 44 2.5 OSGi的類加載架構 / 45 2.5.1 父類加載器 / 46 2.5.2 Bundle類加載器 / 47 2.5.3 其他類加載器 / 49 2.5.4 類加載順序 / 50 2.6 定義執行環境 / 51 2.7 本地化 / 54 2.8 本章小結 / 55 [0第0]3章 生命周期層規範與原理 / 56 3.1 Bundle標識 / 56 3.2 Bundle狀態及轉換 / 57 3.2.1 安裝過程 / 59 3.2.2 解析過程 / 61 3.2.3 啓動過程 / 62 3.2.4 更新過程 / 63 3.2.5 停止過程 / 64 3.2.6 卸載過程 / 65 3.3 啓動級彆 / 65 3.3.1 設置啓動級彆 / 66 3.3.2 調整活動啓動級彆 / 67 3.4 事件監聽 / 68 3.4.1 事件類型 / 69 3.4.2 事件分派 / 70 3.5 係統Bundle / 71 3.6 Bundle上下文 / 72 3.7 本章小結 / 73 [0第0]4章 服務層規範與原理 / 74 4.1 服務 / 74 4.2 OSGi服務示例 / 75 4.3 服務屬性 / 80 4.3.1 屬性過濾器 / 82 4.3.2 預定義屬性 / 83 4.3.3 修改屬性 / 84 4.4 服務工廠 / 85 4.5 服務跟蹤器 / 86 4.6 引用服務 / 89 4.7 釋放和注銷服務 / 91 4.8 服務層事件 / 91 4.8.1 事件類型 / 92 4.8.2 事件分派 / 92 4.8.3 ServiceRegistration對象的提前請求 / 93 4.9 遠程服務 / 94 4.9.1 準備遠程服務環境 / 94 4.9.2 遠程服務示例 / 96 4.9.3 遠程服務屬性 / 99 4.9.4 實現分析 / 100 4.10 服務鈎子 / 101 4.10.1 EventListenerHook / 101 4.10.2 FindHook / 101 4.10.3 ListenerHook / 102 4.10.4 服務鈎子示例 / 102 4.11 本章小結 / 105 [0第0]三部分 基於Equi[0no0]x的OSGi應用與實踐 [0第0]5章 Equi[0no0]x啓航 / 108 5.1 建立Equi[0no0]x開發環境 / 109 5.1.1 建立運行環境 / 109 5.1.2 建立編譯及調試環境 / 110 5.1.3 建立開發環境 / 112 5.2 Equi[0no0]x常用組件簡介 / 117 5.3 Equi[0no0]x啓動器 / 119 5.4 使用代碼啓動Equi[0no0]x / 124 5.5 本章小結 / 125 [0第0]6章 Equi[0no0]x基礎應用與源碼解析 / 126 6.1 實踐項目—Neonat論壇 / 126 6.1.1 背景與需求 / 126 6.1.2 模塊劃分 / 127 6.1.3 基礎資料模塊 / 129 6.1.4 持久化模塊 / 133 6.1.5 用戶交互模塊 / 135 6.1.6 運行效果 / 140 6.2 Equi[0no0]x源碼解析 / 142 6.2.1 OSGi容器啓動 / 142 6.2.2 Bundle狀態恢復 / 147 6.2.3 解析Bundle依賴關係 / 153 6.2.4 OSGi類加載器實現 / 157 6.3 本章小結 / 162 [0第0]7章 服務器端OSGi / 163 7.1 OSGi與Web服務器 / 163 7.2 HTTP Service規範簡介 / 166 7.2.1 服務目標 / 166 7.2.2 服務接口 / 168 7.2.3 資源映射規則 / 169 7.2.4 請求處理過程 / 171 7.3 實踐項目—Neonat論壇的Web模塊 / 171 7.3.1 準備依賴項 / 172 7.3.2 使用HTTP Service / 174 7.3.3 實現Web交互功能 / 176 7.3.4 運行效果 / 178 7.4 HTTP Service源碼解析 / 180 7.4.1 BridgeServlet與OSGi容器啓動 / 180 7.4.2 BridgeServlet與HTTP請求委派 / 186 7.4.3 DelegateServlet實現原理 / 188 7.5 本章小結 / 192 [0第0]8章 用戶管理服務 / 193 8.1 User Admin服務規範簡介 / 193 8.1.1 服務目標與基礎概念 / 193 8.1.2 驗證用戶身份 / 195 8.1.3 驗證用戶[0權0]限 / 196 8.1.4 User Admin事件 / 197 8.2 實踐項目—Neonat論壇用戶管理模塊 / 198 8.2.1 需求與依賴項分析 / 198 8.2.2 用戶與用戶組的實現 / 200 8.2.3 頁麵[0權0]限 / 201 8.2.4 用戶登錄與身份驗證 / 202 8.3 User Admin源碼解析 / 206 8.3.1 用戶管理實現 / 206 8.3.2 外部服務使用實踐 / 208 8.4 本章小結 / 211 [0第0]9章 Preferences服務 / 212 9.1 Preferences服務規範簡介 / 212 9.1.1 服務目標 / 212 9.1.2 數據結構 / 214 9.1.3 屬性 / 215 9.1.4 並發處理 / 216 9.1.5 清理遺留數據 / 217 9.2 實踐項目—Neonat論壇持久化模塊 / 217 9.2.1 編碼實現 / 217 9.2.2 模塊熱切換 / 220 9.3 Preferences源碼解析 / 222 9.3.1 數據結構實現 / 224 9.3.2 屬性存取 / 228 9.3.3 後端存儲係統 / 229 9.4 本章小結 / 234 [0第0]10章 聲明式服務 / 235 10.1 聲明式服務規範簡介 / 236 10.1.1 服務目標 / 236 10.1.2 定義Component / 236 10.1.3 Component類型 / 237 10.1.4 Component生命周期 / 240 10.1.5 Component屬性 / 245 10.1.6 綁定與發布服務 / 245 10.1.7 激活與鈍化方[0法0] / 252 10.1.8 Component配置總結 / 254 10.2 實踐項目—使用聲明式服務改造Neonat論壇 / 259 10.2.1 可視化編輯工具 / 259 10.2.2 DS容器管理 / 263 10.3 DS容器源碼解析 / 264 10.3.1 容器啓動 / 264 10.3.2 加載Bundle中的Component / 267 10.3.3 動態依賴解析 / 272 10.4 本章小結 / 274 [0第0]11章 Subsystems服務 / 276 11.1 服務目標 / 276 11.2 Subsystem格式 / 277 11.3 Subsystem元數據 / 278 11.3.1 SUBSYSTEM.MF標識 / 278 11.3.2 DEPLOYMENT.MF標識 / 281 11.4 Subsystem類型與共享策略 / 283 11.5 組織管理Subsystem / 285 11.6 Subsystem部署與依賴策略 / 289 11.7 Subsystem生命周期 / 291 11.7.1 安裝 / 292 11.7.2 解析 / 293 11.7.3 啓動 / 294 11.7.4 停止 / 294 11.7.5 卸載 / 295 11.8 本章小結 / 295 [0第0]四部分 佳實踐 [0第0]12章 OSGi佳實踐 / 298 12.1 Bundle相關[0名0]稱命[0名0] / 298 12.2 Bundle劃分原則 / 300 12.2.1 恰如其分地分配Bundle粒度 / 300 12.2.2 分離OSGi代碼 / 300 12.2.3 分離接口和實現 / 300 12.3 依賴關係實踐 / 301 12.3.1 依賴分析工具 / 301 12.3.2 避免Require-Bundle / 303 12.3.3 小化依賴 / 304 12.3.4 避免循環依賴 / 304 12.3.5 Equi[0no0]x x-*依賴 / 305 12.4 Equi[0no0]x專有類加載 [1機1] 製 / 306 12.4.1 Buddy Loading類加載 [1機1] 製 / 306 12.4.2 ClassLoaderDelegateHook類加載 [1機1] 製 / 307 12.5 Bundle生命周期實踐 / 309 12.5.1 啓動 / 309 12.5.2 停止 / 309 12.6 服務工廠的特殊性 / 309 12.7 處理非OSGi的JAR包 / 311 12.8 啓動順序實踐 / 313 12.8.1 避免啓動順序依賴 / 313 12.8.2 Start Level的使用 / 313 12.9 Fragment Bundle實踐 / 314 12.10 保持OSGi動態性 / 315 12.11 API Tools實踐 / 317 12.11.1 API Baselines / 317 12.11.2 API Tools 注解 / 319 12.11.3 API Version版本管理 / 322 12.11.4 二進製文件不兼容 / 322 12.12 本章小結 / 322 [0第0]13章 Spring Dynamic Modules實踐 / 324 13.1 Spring DM入門 / 324 13.1.1 Spring DM項目簡介 / 324 13.1.2 安裝Spring DM / 325 13.1.3 簡單的Spring DM示例 / 326 13.1.4 Bundle和Spring上下文 / 331 13.1.5 13.2 Spring DM進階 / 337 13.2.1 Spring DM擴展配置 / 337 13.2.2 Web Extender / 344 13.2.3 Spring DM服務約束 / 345 13.2.4 在Spring上下文中使用BundleContext / 346 13.3 Spring DM企業應用 / 346 13.3.1 規劃OSGi組件 / 347 13.3.2 在Spring DM中使用JPA / 348 13.3.3 事務管理 / 353 13.3.4 OSGi企業規範中的JPA / 358 13.4 Spring DM和Blueprint / 359 13.5 本章小結 / 360 [0第0]14章 構建可測試的OSGi係統 / 361 14.1 單元測試的必要性 / 362 14.2 單元測試的重要性 / 363 14.3 可測試代碼的特徵 / 364 14.4 OSGi單元測試 / 365 14.4.1 如何組織測試代碼 / 366 14.4.2 如何進行OSGi單元測試 / 367 14.5 OSGi集成測試 / 373 14.5.1 Eclipse JUnit Plug-in Test / 374 14.5.2 Spring DM Test / 379 14.5.3 Pax Exam / 383 14.6 本章小結 / 384 附錄A Java類加載器簡介 / 385 附錄B Equi[0no0]x控製颱命令 / 392 附錄C OSGi子規範目錄 / 397 附錄D OSGi相關項目 / 399 附錄E Equi[0no0]x啓動配置參數 / 401 |
我最近在嘗試將我負責的多個遺留 Java 項目進行模塊化重構,一直對 OSGi 概念有所耳聞,但實際落地卻遇到瞭不少障礙。市麵上能找到的相關資料,要麼過於理論化,要麼案例不夠貼近實際生産環境。這本書給瞭我非常大的啓發。它不僅僅是理論的堆砌,更重要的是提供瞭許多關於 Equinox 在實際項目中的應用案例和最佳實踐。作者在講解如何組織 Bundle、如何管理 Bundle 之間的依賴關係、以及如何利用 OSGi 的服務注冊機製來實現模塊間的解耦等方麵,提供瞭非常具體和可操作的建議。尤其讓我印象深刻的是關於“服務生命周期管理”的章節,它詳細闡述瞭如何處理服務的動態齣現和消失,以及如何保證應用程序的健壯性。書中還介紹瞭一些常見的 Equinox 部署場景和性能優化技巧,這些都是我在實際工作中非常迫切需要瞭解的。閱讀這本書,感覺就像是得到瞭一位經驗豐富的 OSGi 專傢的指導,讓我少走瞭很多彎路,也對如何構建高效、可維護的 OSGi 應用有瞭更清晰的認識。
評分作為一名有著幾年 Java 開發經驗的開發者,我一直對 OSGi 這種模塊化開發理念非常感興趣,尤其是它在企業級應用開發中的潛力。然而,實際接觸 OSGi 的過程並不如想象中順利,很多時候感覺自己隻是在“使用”它,而沒有真正“理解”它。這本書的齣現,正好填補瞭這一空白。作者在解釋 OSGi 核心概念時,並沒有止步於錶麵的 API 調用,而是深入到瞭 Equinox 框架的內部實現。我特彆喜歡作者對 OSGi 規範的解讀,以及 Equinox 如何在這些規範的基礎上構建其特有的運行時環境。例如,關於 OSGi 聲明式服務 (Declarative Services) 的部分,書中不僅講解瞭其基本用法,還深入分析瞭它的工作原理,以及它如何簡化瞭服務生命周期的管理。讀完之後,我對 OSGi 的服務注冊、發現和生命周期管理有瞭更深層次的理解,也明白瞭為什麼 OSGi 能夠實現如此靈活的模塊化。這本書的邏輯性非常強,層層遞進,將復雜的概念娓娓道來,讓我從一個 OSGi 的“使用者”變成瞭一個更能“理解”和“掌握”它的人。
評分我對 OSGi 已經有瞭一定的瞭解,但一直覺得在 Equinox 框架的深度應用上存在瓶頸。市麵上很多資料都局限於介紹 OSGi 的基礎概念,對於 Equinox 內部的精髓和高級用法涉及不多。這本書則完全不同。它深入剖析瞭 Equinox 的核心原理,包括其啓動機製、模塊化加載、服務模型以及 Bundle 間的通信方式。作者在講解這些復雜的技術細節時,邏輯清晰,循序漸進,並且引用瞭大量的實際案例,這使得我能夠更容易地理解和消化。我特彆喜歡書中關於“Equinox 擴展點”和“Equinox 調試技巧”的部分,這些內容對於解決我在實際開發中遇到的疑難雜癥非常有幫助。通過閱讀這本書,我對 Equinox 的理解從“知其然”提升到瞭“知其所以然”,也掌握瞭更多高級的 Equinox 應用技巧。這不僅提升瞭我解決復雜問題的能力,也讓我對如何構建高性能、高可用性的 OSGi 應用有瞭更深入的認識。
評分這本書簡直是為我量身定做的!我一直在尋找一本能夠深入剖析 OSGi 核心機製的書籍,尤其是 Equinox 框架的部分。市麵上很多介紹 OSGi 的書籍都流於錶麵,講講概念,列舉幾個簡單的例子,但真正觸及到 OSGi 運行時模型、Bundle 生命周期管理、服務注冊與發現機製、以及 Equinox 內部實現原理的卻少之又少。讀完這本書,我感覺那些曾經睏擾我的“為什麼會這樣?”、“它內部是怎麼運作的?”之類的問題都迎刃而解瞭。作者在講解 Equinox 內部架構時,沒有迴避復雜的細節,而是抽絲剝繭,用清晰的邏輯和圖示(雖然我這裏看不到圖示,但能想象到)將復雜的概念變得容易理解。特彆是關於 Equinox 啓動過程、類加載機製、以及 Framework 提供的 API 如何與 Bundle 交互的部分,講解得非常到位。我一直覺得 OSGi 的強大之處在於其動態性,而這本書恰恰深入探討瞭這種動態性是如何實現的,以及如何在實際開發中充分利用它。這對於我後續開發基於 OSGi 的大型、模塊化應用非常有幫助,讓我能夠更有信心地去設計和構建健壯、可擴展的係統。
評分我一直緻力於提升自己代碼的可維護性和擴展性,而 OSGi 在這方麵的優勢毋庸置疑。在尋找相關的學習資料時,我偶然發現瞭這本書。坦白說,一開始我對 OSGi 的動態性和模塊化概念感到有些抽象,直到我深入閱讀瞭這本書。作者在書中非常注重理論與實踐的結閤,他詳細講解瞭 Equinox 框架的設計理念,並將其應用於各種實際的開發場景。我尤其對書中關於“OSGi Bundle 開發的最佳實踐”的部分印象深刻。它不僅列舉瞭如何編寫高效、健壯的 Bundle,還提供瞭很多關於如何處理 Bundle 間依賴、如何進行版本管理、以及如何進行模塊化測試的寶貴建議。讓我受益匪淺的是,作者還分享瞭一些在實際項目中遇到的常見問題和相應的解決方案,這比單純的理論講解要實用得多。這本書讓我深刻認識到,OSGi 不僅僅是一種技術,更是一種工程實踐的方法論,它能夠幫助我們構建更加靈活、穩定、易於維護的軟件係統。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有