Eclipse RCP與Spring OSGi:技術詳解與最佳實踐( 簡體 字) | |
作者:陸陽 | 類別:1. -> 程式設計 -> JAVA -> Eclipse 2. -> 程式設計 -> JAVA -> Spring |
出版社:機械工業出版社 | 3dWoo書號: 34411 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:12/6/2012 | |
頁數:416 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787111402183 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
推薦序
前言 第一部分 基 礎 篇 第1章 初識Eclipse RCP / 2 1.1 Eclipse平臺概述 / 2 1.2 Eclipse RCP概述 / 2 1.3 Eclipse RCP的應用 / 3 1.4 OSGi與Equinox / 5 1.5 SWT與JFace / 7 1.6 小結 / 7 第2章 搭建Eclipse RCP開發環境 / 8 2.1 JDK的安裝與配置 / 8 2.1.1 下載JDK安裝程序 / 8 2.1.2 安裝JDK運行程序 / 8 2.1.3 配置JDK運行環境 / 10 2.1.4 測試JDK安裝狀態 / 11 2.1.5 卸載JDK應用程序 / 11 2.2 安裝Eclipse IDE / 12 2.2.1 Eclipse開發包 / 12 2.2.2 Eclipse版本更新 / 13 2.2.3 下載Eclipse / 14 2.2.4 安裝Eclipse / 14 2.2.5 技術資源 / 14 2.3 Maven的安裝與配置 / 14 2.3.1 Maven介紹 / 14 2.3.2 下載Maven / 15 2.3.3 安裝Maven / 15 2.3.4 測試Maven / 16 2.3.5 修改Maven的配置文件 / 16 2.3.6 技術資源 / 17 2.4 Maven和Eclipse的集成 / 17 2.4.1 安裝Maven Eclipse插件 / 17 2.4.2 配置Maven Eclipse插件 / 18 2.4.3 技術資源 / 18 2.5 安裝Spring IDE Plugin / 19 2.5.1 Spring IDE介紹 / 19 2.5.2 安裝Spring IDE插件 / 19 2.5.3 技術資源 / 19 2.6 安裝WindowBuilderProPlugin / 20 2.6.1 WindowBuilder介紹 / 20 2.6.2 安裝WindowBuilder插件 / 21 2.7 小結 / 21 第3章 SWT界面設計詳解 / 22 3.1 SWT介紹 / 22 3.2 WindowBuilder插件初識 / 23 3.2.1 設計視圖 / 23 3.2.2 源碼視圖 / 24 3.2.3 結構視圖 / 26 3.3 SWT設計面板 / 26 3.4 SWT設計準備 / 27 3.4.1 Element / 27 3.4.2 ElementFactory / 28 3.5 Shell使用入門 / 30 3.5.1 Shell樣式 / 30 3.5.2 Shell TRIM / 30 3.5.3 Shell模態類型 / 31 3.6 容器使用入門 / 33 3.6.1 Composite / 33 3.6.2 Group / 34 3.6.3 ScrolledComposit / 35 3.6.4 SashForm / 36 3.6.5 TabFolder與TabItem / 36 3.6.6 CTabFolder與CTabItem / 37 3.6.7 ViewForm / 38 3.6.8 CBanner / 40 3.7 容器使用進階 / 41 3.7.1 checkSubclass方法 / 41 3.7.2 界面復用 / 42 3.7.3 添加自定義的Component / 44 3.7.4 背景模式 / 45 3.7.5 帶分隔條的SashForm / 47 3.8 布局使用入門 / 48 3.8.1 AbsoluteLayout / 48 3.8.2 FillLayout / 49 3.8.3 GridLayout / 50 3.8.4 FormLayout / 51 3.8.5 RowLayout / 52 3.8.6 StackLayout / 53 3.8.7 GroupLayout / 54 3.8.8 FlowLayout / 55 3.8.9 BoxLayout / 56 3.8.10 BorderLayout / 57 3.9 布局使用進階 / 58 3.9.1 使用AbsoluteLayout / 58 3.9.2 使用GridLayout / 59 3.9.3 StackLayout / 59 3.10 控件使用入門 / 60 3.10.1 Label / 60 3.10.2 CLabel / 61 3.10.3 Separator / 62 3.10.4 Text / 63 3.10.5 StyledText / 63 3.10.6 Combo / 64 3.10.7 CCombo / 64 3.10.8 List / 65 3.10.9 Button / 66 3.10.10 DateTime / 68 3.10.11 Spinner / 68 3.10.12 Slider / 69 3.10.13 Scale / 70 3.10.14 Link / 70 3.10.15 ToolBar與ToolItem / 71 3.10.16 CoolBar與CoolItem / 73 3.10.17 ExpandBar與ExpandItem / 74 3.10.18 ProgressBar / 75 3.10.19 Browser / 76 3.10.20 Canvas / 77 3.10.21 TrayItem / 77 3.10.22 Table / 78 3.10.23 Tree / 80 3.10.24 TableTree / 81 3.11 控件使用進階 / 83 3.11.1 創建Simple Table / 83 3.11.2 創建Lazy Table / 86 3.11.3 創建Virtual Table / 89 3.11.4 Virtual Table注意事項 / 92 3.11.5 Virtual Table排序 / 94 3.11.6 創建Lazy Tree / 95 3.11.7 創建Virtual Tree / 100 3.11.8 創建TreeVirtualDynamic / 104 3.11.9 創建POJOComposite / 106 3.11.10 如何與瀏覽器交互 / 107 3.12 菜單使用入門 / 111 3.12.1 Menu Bar組件 / 111 3.12.2 Popup Menu / 112 3.12.3 MenuItem / 113 3.13 菜單使用進階 / 113 3.14 技術資源 / 113 3.15 小結 / 114 第4章 JFace界面設計詳解 / 115 4.1 MVC設計思想 / 115 4.1.1 MVC模式 / 115 4.1.2 Java與MVC模式 / 116 4.2 JFace與MVC模式 / 117 4.2.1 JFace Viewer框架概述 / 117 4.2.2 JFace Viewer框架機制 / 118 4.3 JFace常用組件入門 / 121 4.3.1 ComboViewer / 122 4.3.2 ListViewer / 130 4.3.3 TableViewer / 132 4.3.4 TreeViewer / 135 4.3.5 CheckboxTableViewer / 137 4.3.6 CheckboxTreeViewer / 139 4.3.7 TreeTableViewer / 141 4.3.8 TableViewer Composite / 141 4.3.9 Table Composite / 142 4.3.10 TreeViewer Composite / 142 4.3.11 Tree Composite / 143 4.4 JFace組件使用進階 / 143 4.4.1 數據綁定 / 143 4.4.2 基于EditingSupport的可編輯表格 / 146 4.4.3 基于ICellModifier的可編輯表格 / 147 4.4.4 對話框編輯器 / 149 4.4.5 其他表格標簽 / 150 4.4.6 Viewer浮動提示控件 / 151 4.5 小結 / 153 第5章 Eclipse Forms與Nebula界面設計 / 154 5.1 Eclipse Forms項目介紹 / 154 5.2 Eclipse Forms使用入門 / 154 5.2.1 Composite / 154 5.2.2 ExpandableComposite / 155 5.2.3 Label與Text / 158 5.2.4 Hyperlink與ImageHyperlink / 158 5.2.5 Composite Separator / 159 5.2.6 Section / 160 5.2.7 Form與ScrolledForm / 162 5.3 Eclipse Forms使用進階 / 164 5.3.1 FormEditor與FormPage / 164 5.3.2 MasterDetailsBlock 與IDetailsPage / 167 5.4 Eclipse Forms技術資源 / 173 5.5 Nebula項目介紹 / 173 5.6 安裝Eclipse Nebula Plugin / 174 5.6.1 安裝Eclipse Nebula Main Widgets / 174 5.6.2 安裝Eclipse Nebula incubation Widgets / 174 5.6.3 加載Eclipse Nebula控件到WindowBuilder Pro Plugin中 / 174 5.7 Nebula Main Widgets設計初識 / 176 5.8 Nebula Incubation widgets設計初識 / 177 5.9 Nebula設計經驗 / 178 5.10 Nebula技術資源 / 180 5.11 小結 / 180 第二部分 高 級 篇 第6章 Eclipse RCP 開發基礎 / 182 6.1 Eclipse概念 / 182 6.1.1 歡迎界面 / 183 6.1.2 工作臺 / 183 6.1.3 透視圖 / 184 6.1.4 視圖 / 184 6.1.5 編輯器 / 185 6.2 RCP應用程序設計 / 185 6.2.1 RCP插件創建向導 / 185 6.2.2 Plug-in Project / 185 6.2.3 Plugin Content / 186 6.2.4 Templates / 187 6.2.5 Sample Intro / 188 6.2.6 產品初次運行 / 188 6.3 插件清單編輯器 / 189 6.3.1 插件概述 / 189 6.3.2 插件依賴項 / 191 6.3.3 插件運行時 / 193 6.3.4 插件擴展 / 197 6.3.5 插件擴展點 / 199 6.3.6 插件構建 / 199 6.3.7 其他頁面 / 200 6.4 RCP Activator與Advisor類解析 / 200 6.4.1 WorkshopAppActivator / 200 6.4.2 Application / 201 6.4.3 ActionBarAdvisor / 202 6.4.4 WorkbenchAdvisor / 203 6.4.5 WorkbenchWindowAdvisor / 205 6.5 小結 / 206 第7章 構建產品幫助系統 / 207 7.1 創建幫助插件向導 / 207 7.1.1 幫助插件的 Content向導頁面 / 208 7.1.2 幫助插件的Templates向導頁面 / 208 7.1.3 幫助插件的Sample Help Table of Contents向導頁面 / 209 7.2 維護Help Content / 209 7.2.1 幫助系統配置與資源文件的目錄 / 209 7.2.2 幫助系統配置與資源文件的關系 / 210 7.2.3 幫助系統擴展 / 211 7.3 添加幫助的菜單項 / 211 7.4 幫助文件的創建 / 212 7.5 小結 / 212 第8章 構建產品歡迎頁面 / 213 8.1 產品綁定歡迎頁面 / 213 8.1.1 歡迎頁面擴展 / 213 8.1.2 歡迎頁面定義 / 215 8.1.3 歡迎頁面首頁 / 215 8.1.4 頁面跳轉鏈接 / 216 8.2 歡迎頁面請求 / 216 8.2.1 創建IIntroAction / 216 8.2.2 添加IIntroAction鏈接 / 217 8.3 添加動態內容 / 217 8.3.1 動態頁面創建 / 217 8.3.2 動態數據創建 / 218 8.4 創建頁面擴展 / 219 8.5 小結 / 221 第9章 構建產品多國語言 / 222 9.1 插件清單的多國語言 / 222 9.2 Java程序的多國語言 / 223 9.2.1 Java程序的外部化字符串 / 223 9.2.2 Java程序的多國語言包 / 226 9.2.3 產品多國語言進階 / 228 9.3 幫助系統的多國語言 / 229 9.4 Eclipse界面漢化 / 230 9.5 切換軟件系統語言 / 234 9.5.1 添加自定義產品的config文件 / 234 9.5.2 添加語言切換擴展點 / 234 9.5.3 語言切換處理器 / 236 9.6 小結 / 238 第10章 產品的運行與導出 / 240 10.1 產品配置 / 240 10.2 產品配置編輯器 / 241 10.3 導出向導 / 244 10.3.1 產品導出 / 244 10.3.2 跨平臺導出 / 245 10.3.3 插件導出 / 247 10.4 運行與導出進階 / 247 10.5 小結 / 250 第11章 Eclipse RCP擴展的使用 / 251 11.1 ViewPart 視圖 / 251 11.1.1 創建新插件 / 251 11.1.2 視圖向導 / 251 11.1.3 視圖代碼 / 252 11.1.4 視圖擴展 / 252 11.2 Perspective透視圖 / 253 11.2.1 透視圖向導 / 253 11.2.2 透視圖代碼 / 254 11.2.3 透視圖擴展 / 254 11.2.4 透視圖布局 / 255 11.2.5 打開透視圖 / 256 11.3 EditorPart編輯器 / 256 11.3.1 創建數據表單 / 257 11.3.2 創建編輯器的輸入 / 257 11.3.3 創建編輯器 / 260 11.3.4 創建視圖樹形組件 / 262 11.3.5 編輯器擴展 / 262 11.4 編程實現Action / 263 11.4.1 IAction / 263 11.4.2 ToolBar工具欄 / 264 11.4.3 CoolBar工具欄 / 264 11.4.4 ContentMenuBar菜單欄 / 265 11.4.5 工作臺Action / 265 11.4.6 視圖Action菜單欄 / 267 11.4.7 視圖Action工具欄 / 267 11.4.8 編輯器Action工具欄 / 268 11.5 擴展實現Action / 269 11.5.1 工作臺Action擴展 / 269 11.5.2 視圖Action擴展 / 270 11.5.3 編輯器Action擴展 / 271 11.6 Action的鍵盤綁定 / 272 11.6.1 Commands擴展 / 273 11.6.2 Bindings擴展 / 274 11.7 Eclipse RCP設計進階 / 276 11.7.1 視圖/編輯器之間通信 / 276 11.7.2 創建狀態欄項 / 278 11.7.3 創建屬性配置頁面 / 279 11.7.4 創建登錄對話框 / 286 11.8 小結 / 289 第12章 Eclipse RCP擴展點開發 / 290 12.1 擴展點簡介 / 290 12.2 創建擴展點 / 290 12.3 擴展點編輯器 / 291 12.3.1 擴展點概述 / 291 12.3.2 擴展點定義 / 292 12.3.3 擴展點源碼 / 295 12.4 擴展點處理 / 295 12.4.1 擴展點對象 / 295 12.4.2 擴展點注冊 / 296 12.4.3 擴展點獲取 / 297 12.5 添加擴展 / 301 12.6 使用擴展 / 302 12.7 小結 / 303 第三部分 實 戰 篇 第13章 Eclipse RCP與Spring OSGi / 306 13.1 OSGi技術介紹 / 306 13.1.1 軟件開發面臨的問題 / 306 13.1.2 動態模塊化解決方案 / 306 13.1.3 OSGi框架 / 307 13.1.4 選擇合適的OSGi實現 / 308 13.2 Spring OSGi項目所需要的開發包 / 308 13.2.1 下載Spring DM的開發包 / 308 13.2.2 解壓縮Spring DM的開發包 / 309 13.2.3 創建Spring DM目標平臺 / 309 13.3 Spring OSGi項目的Maven管理 / 311 13.3.1 創建Maven POM項目 / 311 13.3.2 修改Maven項目類型 / 312 13.4 Spring OSGi項目的模塊化設計 / 313 13.4.1 創建Spring DM業務項目 / 313 13.4.2 設計Spring DM業務項目 / 313 13.5 Spring OSGi項目轉為插件項目 / 318 13.6 Spring OSGi插件項目發布接口 / 319 13.6.1 創建接口發布配置 / 319 13.6.2 添加包的路徑導出 / 319 13.7 Eclipse RCP獲取Spring OSGi服務 / 320 13.7.1 創建Eclipse RCP UI 插件 / 320 13.7.2 獲取Spring OSGi服務接口 / 320 13.7.3 調用Spring OSGi服務接口 / 321 13.8 Eclipse RCP與Spring OSGi的啟動 / 322 13.8.1 Eclipse 應用程序啟動選項 / 322 13.8.2 啟動Eclipse RCP產品配置 / 326 13.8.3 啟動基于Spring OSGi的RCP程序 / 326 13.9 在Eclipse RCP中獲取ApplicationContext和Bean / 328 13.10 Spring OSGi的Maven插件項目打包 / 331 13.10.1 PDE插件導出向導 / 331 13.10.2 Maven插件項目的打包配置 / 332 13.10.3 執行Maven插件打包 / 333 13.11 小結 / 334 第14章 Eclipse RCP與數據訪問 / 335 14.1 SpringOSGi與Hibernate / 335 14.1.1 Hibernate簡介 / 335 14.1.2 數據訪問插件目標 / 335 14.1.3 數據訪問插件設計 / 336 14.2 插件如何引入第三方開發包 / 338 14.2.1 如何獲取第三方開發包 / 338 14.2.2 如何引用第三方開發包 / 341 14.3 將普通JAR轉成插件格式 / 344 14.3.1 導入向導 / 344 14.3.2 BND工具 / 344 14.4 創建數據庫插件 / 345 14.4.1 Maven POM配置文件 / 345 14.4.2 properties配置文件 / 346 14.4.3 Spring XML配置文件 / 346 14.4.4 MAINFEST.MF配置文件 / 349 14.5 創建連接池插件 / 349 14.5.1 Maven POM配置文件 / 349 14.5.2 properties配置文件 / 349 14.5.3 Spring XML配置文件 / 350 14.5.4 Java類設計 / 352 14.5.5 MAINFEST.MF配置文件 / 355 14.6 創建連接池Feature插件 / 355 14.6.1 修改DBCP的MAINFEST.MF文件 / 356 14.6.2 創建DBCP的Fragment插件 / 356 14.7 創建Hibernate插件 / 356 14.7.1 Maven POM配置文件 / 356 14.7.2 properties配置文件 / 358 14.7.3 Spring XML配置文件 / 358 14.7.4 擴展點設計 / 362 14.7.5 Java類設計 / 364 14.7.6 MAINFEST.MF配置文件 / 371 14.8 創建業務插件 / 371 14.8.1 Spring XML配置文件 / 372 14.8.2 Java類設計 / 375 14.8.3 數據庫SQL設計 / 376 14.8.4 MAINFEST.MF配置文件 / 376 14.8.5 添加BundleAnnotationSessionFactoryBean擴展 / 377 14.9 啟動OSGi Framework程序 / 378 14.10 其他整合數據庫的方式 / 379 14.11 基于數據訪問插件的RCP程序啟動 / 380 14.12 小結 / 382 第15章 Eclipse與Java的模塊化設計 / 383 15.1 基于編程語言的模塊化 / 383 15.1.1 Java語句的模塊化設計 / 383 15.1.2 Java方法的模塊化設計 / 383 15.1.3 Java類的模塊化設計 / 384 15.1.4 Java接口的模塊化設計 / 385 15.2 基于編程方法的模塊化 / 385 15.2.1 IoC編程的模塊化設計 / 385 15.2.2 AOP編程的模塊化設計 / 386 15.3 基于程序物理文件的模塊化 / 388 15.3.1 Package路徑的模塊化設計 / 388 15.3.2 XML文件的模塊化設計 / 389 15.3.3 Properties文件的模塊化設計 / 389 15.3.4 JAR組件的模塊化設計 / 390 15.4 基于技術架構的模塊化 / 391 15.4.1 OSGi的模塊化設計 / 391 15.4.2 Eclipse插件的模塊化設計 / 392 15.4.3 JMS的模塊化設計 / 392 15.5 模塊化的技術移植 / 394 15.6 小結 / 394 毫無疑問,Eclipse是全球最受歡迎的Java客戶端軟件開發IDE,Spring則在眾多的Java Web開發框架中獨樹一幟。隨著現代軟件開發的規模越來越大,結構越來越復雜,模塊化是當今解決這一問題的最佳方案之一。Eclipse RCP和Spring OSGi分別是開發大規模的Java客戶端應用和Java Web應用的主流技術,本書十分詳盡地講解了Eclipse RCP和Spring OSGi的技術細節,以及利用它們編寫模塊化程序的思路和最佳實踐。
—— 51CTO(www.51cto.com) 中國領先的IT技術網站 本書主要內容: Eclipse RCP的詳細介紹,包括Eclipse RCP的概況和應用、OSGi與Equinox、SWT與JFace等內容; Eclipse RCP開發環境的搭建,包括JDK、Eclipse IDE、Maven、Spring IDE Plugin的安裝與配置,以及Maven與Eclipse的集成; Eclipse RCP常用的界面編程技術的詳細講解,包括SWT界面設計、JFace界面設計、Eclipse Forms與Nebula界面設計等; Eclipse RCP應用的開發流程和方法,以及對Eclipse RCP軟件產品的組成部分的詳細介紹,包括產品幫助系統、產品歡迎頁面、產品多國語言、產品的運行與導出; Eclipse RCP擴展的使用和Eclipse RCP擴展點的開發; Spring OSGi項目的詳細講解,包括項目所需的開發包、項目的Maven管理、項目的模塊化設計等內容,以及如何與Eclipse RCP的整合; Eclipse RCP與Hibernate、數據庫驅動、數據庫連接池整合的技術細節; Eclipse與Java模塊化設計的技術細節; 為什么要寫這本書
幾年前筆者就有編寫一本關于Eclipse RCP和OSGi技術的書籍的想法,但幾次提筆又放棄了,因為未能很好地解決在開發實踐中遇到的很多問題,筆者不希望將一些不成熟的想法和開發“玩具”程序的經驗傳播給其他開發者。最近筆者完成了一個綜合性的項目,覺得自己已有了足夠的經驗,已可以完成這樣一本書了。此時WindowBuilder界面設計工具已經被Google公司收購并免費開放給開發者使用了,使用該工具時不再有軟件版權問題,于是筆者真正開始動筆寫作本書了。 隨著現代軟件開發規模愈來愈龐大、愈來愈復雜,模塊化開發會成為一種必然趨勢。Eclipse RCP 和OSGi技術正是解決這一系列問題的一劑良藥。使用Eclipse RCP和OSGi技術開發程序所面臨的最大挑戰不是編寫代碼,而是如何規劃插件的功能邊界,如何開發松耦合、可復用的插件系統。另外,開發數量龐大的插件在項目管理和版本控制上也是一個挑戰,有時候開發者不得不在是否應當細化插件功能的顆粒度和由此造成過多的插件數量之間權衡。 無論是桌面系統開發還是Web系統開發,在國外Eclipse RCP和OSGi都早已有非常廣泛的應用,但是近年來在國內依然沒能得到有效的推廣。鑒于國內Spring技術書籍已經非常豐富,開發者對Spring技術也相對熟悉,所以本書結合Eclipse RCP和Spring OSGi以實踐的方式來傳播新技術,這樣讀者可以在已有的知識結構上學習新東西,以縮短學習周期,迅速掌握技術要點。本書中的技術既能夠滿足Eclipse客戶端軟件的開發者,又能夠兼顧Java Web應用程序的開發者。筆者非常贊同Eclipse技術社區中所倡導的軟件開發精神:貢獻、分享、邀請,每個人都需要別人的關懷和幫助,每個人同樣有義務關懷和幫助別人。Eclipse與OSGi技術在實踐開發中應用起來相對困難,需要整合很多第三方技術與輔助工具,開發環境的配置也較為煩瑣。本書中的開發經驗大多來自于一個具有上百個插件的綜合性軟件平臺,筆者將其中一些有益的設計經驗和技巧抽離出來,盡可能多地向讀者展示開發環境的搭建、工具的配置、編程經驗、解決問題的思路以及如何獲取更多的技術資源等知識。 Eclipse本身的設計非常復雜,項目龐大,更多的編程經驗還需要讀者在實踐開發中不斷積累。閱讀Eclipse的源碼和下載Eclipse的CVS示例程序都是學習相關技術的有效途徑。而就在筆者完成本書的時候,新一代的Eclipse應用平臺核心運行框架Eclipse 4 Juno版本也如期發布,更多新的技術特性得到支持,包括:跨產品平臺、自定義的依賴注入(Define custom DI-Annoations)、新的CSS外觀技術、向后兼容性等。而基于企業級的OSGi 5.0規范也將會在EclipseCon 2012會議和OSGiCon 2012會議后得到廣泛應用,一系列新的技術特性將在新版本中發布。 我們雖然不能通過一本書就越過那道門,但是至少可以開啟一扇窗戶,看到門外的世界。對于那些看上去是障礙和壁壘的技術,親自接觸一下,也是有價值的,哪怕只有幾秒,也比旁觀幾百次有效。 讀者對象 本書面向的讀者是使用Eclipse RCP和Spring OSGi技術開發應用系統的程序設計人員,也包括之前就已經使用Java編程語言編寫過桌面或Web應用程序的開發者。對于準備使用Spring OSGi開發Web應用程序的開發者,本書的大部分概念和知識也同樣適用。 本書假設讀者已經熟悉了Java的語法和特點,并對Java設計模式有了一定了解,例如適配器模式、監聽器模式、模板模式等。本書內容編排的基本原則是任何具有基本Java知識的人都可以理解。除此之外,開發者應該掌握一些常用的開源技術,比如Spring開發框架、Hibernate ORM開發框架。 如何閱讀本書 本書分為三大部分: 第一部分為基礎篇,介紹了Eclipse RCP開發所使用的常用界面編程技術,涵蓋了SWT、JFace、Forms、Nebula和WindowBuilder設計器的使用方法。讀者應當熟練掌握布局和各種控件的使用方法,并且通過訪問這些技術的官方網站來獲取更多的編程技巧。 第二部分為高級篇,著重講解了Eclipse RCP軟件產品的組成部分,讀者應當充分理解RCP開發中關于運行平臺和目標平臺、擴展和擴展點的概念。掌握這些技術點有助于讀者構建一個結構完整的Eclipse RCP軟件,解決軟件開發過程中的故障。 第三部分為實戰篇,詳細講解了Eclipse RCP與Spring OSGi框架、Hibernate ORM框架、JPA規范、Maven工具的整合。如果讀者在此之前從未接觸過Spring和Hibernate技術,建議閱讀一些與此相關的資料。 對于Eclipse RCP和Spring OSGi技術的初學者,建議采用循序漸進的方式逐章學習。對于已經具備一定開發經驗的讀者,可以直接選擇感興趣的內容閱讀。本書的技術點都盡可能地與業務邏輯剝離,以減少無關的程序代碼實現,從而使讀者更好地關注技術本身,減少對讀者學習的干擾。 本書約定 1. 軟件版本 在編寫本書時所使用的JDK版本為Java SE 7、Eclipse版本為Eclipse 3.7(Indigo)、Maven版本為2.2.1、Spring OSGI(Spring DM)版本為1.2.1、Hibernate版本為3.3.1.GA,這些都屬于當前性能較穩定且使用較為廣泛的版本。如果你的開發環境與此不同,建議Eclipse的版本至少不低于3.6、JDK不低于1.5即可。 2. 程序范例 本書提供的程序范例都以保持結構的完整性為前提,盡可能不展示與主要技術無關的業務內容,以避免干擾對技術點的學習。每個范例都能夠獨立運行。對于SWT、JFace、Forms、Nebula章節的程序,本書提供了Shell、插件、RCP獨立程序三種版本的運行方式,實際上它們都使用了相同的程序范例,只需進行很小的調整就可以移植到多種環境中。本書中出現的代碼清單力爭短小、有實際意義、不重復。如果遇到同一個程序范例的多個開發版本,將采用前后對比的方式展示修改的地方,不再重復相同的技術細節。 本書程序范例的具體情況如下: 第3章 SWT界面設計詳解。 本章使用com.rcp.example.module.ui插件打包程序范例,包含了與SWT相關的程序。 第4章 JFace界面設計詳解。 本章使用com.rcp.example.module.ui插件打包程序范例,包含了與JFace相關的程序。 第5章 Eclipse Forms與Nebula界面設計。 本章使用com.rcp.example.module.ui插件打包程序范例,包含了與Forms相關的程序。 第6章 Eclipse RCP 開發基礎。 本章創建com.rcp.example.app 插件作為Eclipse RCP獨立應用程序,并且創建插件com.rcp.example.module.a和com.rcp.example.module.b演示包的訪問規則。 第7章 構建產品幫助系統。 本章創建com.rcp.example.app.help 插件作為獨立應用程序的幫助插件。 第8章 構建產品歡迎頁面。 本章使用com.rcp.example.app.app 作為產品歡迎頁面插件。 第9章 構建產品多國語言。 本章創建一個com.rcp.example.app.language 插件實現多國語言界面切換的功能。 第11章 Eclipse RCP擴展的使用。 本章創建 com.rcp.example.module.c 插件演示多個擴展點技術和多種菜單、按鈕的創建方式。 第12章 Eclipse RCP擴展點開發。 本章創建com.rcp.example.module.d插件作為擴展點的提供者,創建com.rcp.example.module.e插件作為擴展點的使用者。 第13章 Eclipse RCP與Spring OSGi。 本章創建com.norcp.example.module.f和com.norcp.example.module.g插件整合了Spring OSGi作為業務模塊。 第14章 Eclipse RCP與數據訪問。 本章創建com.norcp.example.db.mysql插件、com.norcp.example.cp.dbcp插件、com.norcp.example.module.h整合了MySQL數據庫、DBCP連接池和業務模塊。 勘誤和支持 由于作者的水平有限,故書中難免會出現一些錯誤或不準確的地方,懇請讀者批評指正。為此,特意創建一個在線支持站點。你可以將書中的錯誤發布在Wiki的Bug勘誤表頁面中,同時如果你遇到任何問題,也可以訪問Wiki的FAQ頁面,我將盡量在線上為讀者提供最滿意的解答。書中的全部源文件除了可以從華章網站下載外,還可以從這個網站下載,我也會將相應的功能更新及時發布出來。如果你有更多的寶貴意見,也歡迎發送郵件至郵箱gmluyang@gmail.com,期待能夠得到你的真摯反饋。 致謝 首先要感謝IBM公司向開源社區貢獻了Eclipse,以及那些為這個偉大的開發平臺貢獻插件的開發者和組織。2012年美國計算機協會(ACM)宣布將軟件系統大獎(Software System Award)授予Eclipse,由此可見,Eclipse對計算機的貢獻是有目共睹的。Eclipse還對開源運動產生了廣泛的影響。 感謝機械工業出版社華章公司的編輯楊福川和姜影,在這一年的時間中始終支持我完善本書,是你們的鼓勵和幫助引導我順利完成全部書稿。 感謝那些陪伴在我身邊的朋友。岑麗絲幫助我校對了部分文字內容,還有鄭偉雄、王霞娟、吳郡、安瑞銀、馮小川、外甥女皮婷婷,雖然他們大多都不明白什么是程序設計,也看不懂我寫的那些“奇怪”的東西,但是一直鼓勵我完成這項工作。 感謝Eclipse基金會的Ian Skerrett副總裁在此期間給予我的協助和支持,他非常關注Eclipse在中國的發展狀況。感謝德國的技術作家Lars Vogel,他發表關于Eclipse的技術的數百篇文章也給我提供了很好的參考。 感謝在中興通訊工作的哥哥徐瓊在我初學軟件開發時給予的幫助,感謝在阿里云工作的弟弟舒銘分享給我在大型互聯網開發方面的有益經驗,還有正在大學學習Java編程的弟弟王齊軒讓我有機會重新梳理了Java學習的技術路線。 最后要感謝我的家人,我的父親是極其出色的機械工程師,他影響了我工作態度,我的母親以醫生的細心照顧著我的生活,他們一直在各方面支持著我,并為此付出了極大的努力,沒有他們我根本無法完成這些工作。 謹以此書獻給我最親愛的家人和朋友,以及眾多熱愛Eclipse和OSGi技術的軟件開發者! 陸陽(SixSun) 于廣東中山 |