Java9模塊化開發:核心原則與實踐

Java9模塊化開發:核心原則與實踐
定價:414
NT $ 360
  • 作者:(荷)桑德·馬克
  • 出版社:機械工業出版社
  • 出版日期:2018-06-01
  • 語言:簡體中文
  • ISBN10:7111601297
  • ISBN13:9787111601296
  • 裝訂:平裝 / 234頁 / 16k / 19 x 26 cm / 普通級 / 單色印刷 / 1-1
 

內容簡介

Java9向Java平臺引入了模組系統,這是一個非常重要的飛躍,標誌著模組化Java軟體發展的新紀元。當需要創建靈活且易於維護的代碼時,模組化是一個關鍵的架構設計原則。本書給出了Java模組系統的明確概述,並演示了如何通過創建模組化應用程式來説明管理以及降低複雜性。作者引導我們瞭解了模組系統中的相關概念以及工具,介紹了將現有代碼遷移到模組中的模式以及以模組方式構建新應用程式的方法。
 

作者介紹

桑德·馬克(Sander Mak)荷蘭 Luminis公司的一名研究員,開發了許多主要用於JVM上的模組化以及可擴展軟體,但也會在需要的地方使用TypeScript。他經常在各種會議上 發言,並熱衷於通過博客(http://branchandbound.net)和作為Pluralsight平臺的講師分享知識。

保羅·巴克(Paul Bakker)Netflix公司的一名高級軟體工程師,在其Edge Developer Experience團隊主要從事工具的開發,以提高公司內部開發人員的工作效率。曾與他人合作編著了《Modular Cloud Apps with OSGi》(由O’’Reilly出版公司出版)一書。Paul經常在與模組化、容器技術相關主題的會議上發言。
 
 

目錄

前言1

第一部分 Java模組系統介紹
第1章 模組化概述8
1.1 什麼是模組化9
1.2 在Java 9之前10
1.2.1 將JAR作為模組?11
1.2.2 類路徑地獄13
1.3 Java 9模組14
第2章 模組和模組化JDK18
2.1 模組化JDK19
2.2 模組描述符22
2.3 可讀性23
2.4 可訪問性24
2.5 隱式可讀性25
2.6 限制匯出29
2.7 模組解析和模組路徑29
2.8 在不使用模組的情況下使用模組化JDK31
第3章 使用模組33
3.1 第一個模組33
3.1.1 剖析模組33
3.1.2 命名模組35
3.1.3 編譯36
3.1.4 打包37
3.1.5 運行模組37
3.1.6 模組路徑39
3.1.7 連結模組40
3.2 任何模組都不是一座孤島41
3.2.1 EasyText示例介紹41
3.2.2 兩個模組43
3.3 使用平臺模組46
3.3.1 找到正確的平臺模組46
3.3.2 創建GUI模組47
3.4 封裝的限制51
第4章 服務54
4.1 工廠模式54
4.2 用於實現隱藏的服務57
4.2.1 提供服務57
4.2.2 消費服務59
4.2.3 服務生命週期61
4.2.4 服務提供者方法62
4.3 工廠模式回顧64
4.4 預設服務實現65
4.5 服務實現的選擇66
4.6 具有服務綁定的模組解析68
4.7 服務和連結70
第5章 模組化模式73
5.1 確定模組邊界74
5.2 精益化模組76
5.3 API模組76
5.3.1 API模組中應該包含什麼77
5.3.2 隱式可讀性78
5.3.3 帶有預設實現的API模組81
5.4 聚合器模組82
5.4.1 在模組上構建一個外觀83
5.4.2 安全拆分模組84
5.5 避免迴圈依賴86
5.5.1 拆分包86
5.5.2 打破迴圈87
5.6 可選的依賴關係90
5.6.1 編譯時依賴關係91
5.6.2 使用服務實現可選依賴關係95
5.7 版本化模組96
5.8 資源封裝99
5.8.1 從模組載入資源100
5.8.2 跨模組載入資源101
5.8.3 使用ResourceBundle類102
第6章 高級模組化模式104
6.1 重溫強封裝性104
6.1.1 深度反射105
6.1.2 開放式模組和包106
6.1.3 依賴注入109
6.2 對模組的反射111
6.2.1 內省112
6.2.2 修改模組113
6.2.3 注釋114
6.3 容器應用程式模式115
6.3.1 層和配置116
6.3.2 層中的類載入119
6.3.3 外掛程式體系結構122
6.3.4 容器體系結構127
6.3.5 解析容器中的平臺模組132

第二部分 遷移
第7章 沒有模組的遷移134
7.1 類路徑已經“死”了?135
7.2 庫、強封裝和JDK 9類路徑135
7.3 編譯和封裝的API138
7.4 刪除的類型141
7.5 使用JAXB和其他Java EE API142
7.6 jdk.unsupported模組145
7.7 其他更改146
第8章 遷移到模組148
8.1 遷移策略148
8.2 一個簡單示例149
8.3 混合類路徑和模組路徑150
8.4 自動模組152
8.5 開放式包155
8.6 開放式模組157
8.7 破壞封裝的VM參數158
8.8 自動模組和類路徑158
8.9 使用jdeps161
8.10 動態載入代碼164
8.11 拆分包166
第9章 遷移案例研究:Spring和Hibernate167
9.1 熟悉應用程式167
9.2 使用Java 9在類路徑上運行172
9.3 設置模組173
9.4 使用自動模組174
9.5 Java平臺依賴項和自動模組176
9.6 開放用於反射的包176
9.7 解決非法訪問問題177
9.8 重構到多個模組178
第10章 庫遷移180
10.1 模組化之前181
10.2 選擇庫模組名稱181
10.3 創建模組描述符184
10.4 使用模組描述符更新庫186
10.5 針對較舊的Java版本187
10.6 庫模組依賴關係188
10.6.1 內部依賴關係188
10.6.2 外部依賴關係191
10.7 針對多個Java版本192
10.7.1 多版本JAR192
10.7.2 模組化多版本JAR195

第三部分 模組化開發工具
第11章 構建工具和IDE198
11.1 Apache Maven198
11.1.1 多模組專案200
11.1.2 使用Apache Maven創建EasyText示例200
11.1.3 使用Apache Maven運行模組化的應用程式204
11.2 Gradle205
11.3 IDE205
第12章 測試模組207
12.1 黑盒測試208
12.2 使用JUnit進行黑盒測試210
12.3 白盒測試212
12.4 測試工具216
第13章 使用自訂運行時映射進行縮減217
13.1 靜態連結和動態連結218
13.2 使用jlink219
13.3 查找正確的服務提供者模組223
13.4 連結期間的模組解析223
13.5 基於類路徑應用程式的jlink224
13.6 壓縮大小225
13.7 提升性能227
13.8 跨目標運行時映射228
第14章 模組化的未來229
14.1 OSGi230
14.2 Java EE232
14.3 微服務232
14.4 下一步233
網路書店 類別 折扣 價格
  1. 新書
    87
    $360