定 價:¥69.00
作 者: | (荷)桑德·馬克,(美),保羅·巴克 |
出版社: | 機(jī)械工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787111601296 | 出版時間: | 2018-07-01 | 包裝: | |
開本: | 頁數(shù): | 字?jǐn)?shù): |
前言1
第一部分 Java模塊系統(tǒng)介紹
第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 限制導(dǎo)出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 運(yùn)行模塊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 創(chuàng)建GUI模塊47
3.4 封裝的限制51
第4章 服務(wù)54
4.1 工廠模式54
4.2 用于實(shí)現(xiàn)隱藏的服務(wù)57
4.2.1 提供服務(wù)57
4.2.2 消費(fèi)服務(wù)59
4.2.3 服務(wù)生命周期61
4.2.4 服務(wù)提供者方法62
4.3 工廠模式回顧64
4.4 默認(rèn)服務(wù)實(shí)現(xiàn)65
4.5 服務(wù)實(shí)現(xiàn)的選擇66
4.6 具有服務(wù)綁定的模塊解析68
4.7 服務(wù)和鏈接70
第5章 模塊化模式73
5.1 確定模塊邊界74
5.2 精益化模塊76
5.3 API模塊76
5.3.1 API模塊中應(yīng)該包含什么77
5.3.2 隱式可讀性78
5.3.3 帶有默認(rèn)實(shí)現(xiàn)的API模塊81
5.4 聚合器模塊82
5.4.1 在模塊上構(gòu)建一個外觀83
5.4.2 安全拆分模塊84
5.5 避免循環(huán)依賴86
5.5.1 拆分包86
5.5.2 打破循環(huán)87
5.6 可選的依賴關(guān)系90
5.6.1 編譯時依賴關(guān)系91
5.6.2 使用服務(wù)實(shí)現(xiàn)可選依賴關(guān)系95
5.7 版本化模塊96
5.8 資源封裝99
5.8.1 從模塊加載資源100
5.8.2 跨模塊加載資源101
5.8.3 使用ResourceBundle類102
第6章 高級模塊化模式104
6.1 重溫強(qiáng)封裝性104
6.1.1 深度反射105
6.1.2 開放式模塊和包106
6.1.3 依賴注入109
6.2 對模塊的反射111
6.2.1 內(nèi)省112
6.2.2 修改模塊113
6.2.3 注釋114
6.3 容器應(yīng)用程序模式115
6.3.1 層和配置116
6.3.2 層中的類加載119
6.3.3 插件體系結(jié)構(gòu)122
6.3.4 容器體系結(jié)構(gòu)127
6.3.5 解析容器中的平臺模塊132
第二部分 遷移
第7章 沒有模塊的遷移134
7.1 類路徑已經(jīng)“死”了?135
7.2 庫、強(qiáng)封裝和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參數(shù)158
8.8 自動模塊和類路徑158
8.9 使用jdeps161
8.10 動態(tài)加載代碼164
8.11 拆分包166
第9章 遷移案例研究:Spring和Hibernate167
9.1 熟悉應(yīng)用程序167
9.2 使用Java 9在類路徑上運(yùn)行172
9.3 設(shè)置模塊173
9.4 使用自動模塊174
9.5 Java平臺依賴項(xiàng)和自動模塊176
9.6 開放用于反射的包176
9.7 解決非法訪問問題177
9.8 重構(gòu)到多個模塊178
第10章 庫遷移180
10.1 模塊化之前181
10.2 選擇庫模塊名稱181
10.3 創(chuàng)建模塊描述符184
10.4 使用模塊描述符更新庫186
10.5 針對較舊的Java版本187
10.6 庫模塊依賴關(guān)系188
10.6.1 內(nèi)部依賴關(guān)系188
10.6.2 外部依賴關(guān)系191
10.7 針對多個Java版本192
10.7.1 多版本JAR192
10.7.2 模塊化多版本JAR195
第三部分 模塊化開發(fā)工具
第11章 構(gòu)建工具和IDE198
11.1 Apache Maven198
11.1.1 多模塊項(xiàng)目200
11.1.2 使用Apache Maven創(chuàng)建EasyText示例200
11.1.3 使用Apache Maven運(yùn)行模塊化的應(yīng)用程序204
11.2 Gradle205
11.3 IDE205
第12章 測試模塊207
12.1 黑盒測試208
12.2 使用JUnit進(jìn)行黑盒測試210
12.3 白盒測試212
12.4 測試工具216
第13章 使用自定義運(yùn)行時映像進(jìn)行縮減217
13.1 靜態(tài)鏈接和動態(tài)鏈接218
13.2 使用jlink219
13.3 查找正確的服務(wù)提供者模塊223
13.4 鏈接期間的模塊解析223
13.5 基于類路徑應(yīng)用程序的jlink224
13.6 壓縮大小225
13.7 提升性能227
13.8 跨目標(biāo)運(yùn)行時映像228
第14章 模塊化的未來229
14.1 OSGi230
14.2 Java EE232
14.3 微服務(wù)232
14.4 下一步233