定 價(jià):¥69.00
作 者: | (荷)桑德·馬克,(美),保羅·巴克 |
出版社: | 機(jī)械工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787111601296 | 出版時(shí)間: | 2018-07-01 | 包裝: | |
開(kāi)本: | 頁(yè)數(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 可訪問(wèn)性24
2.5 隱式可讀性25
2.6 限制導(dǎo)出29
2.7 模塊解析和模塊路徑29
2.8 在不使用模塊的情況下使用模塊化JDK31
第3章 使用模塊33
3.1 第一個(gè)模塊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 兩個(gè)模塊43
3.3 使用平臺(tái)模塊46
3.3.1 找到正確的平臺(tái)模塊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)建一個(gè)外觀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 編譯時(shí)依賴關(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章 高級(jí)模塊化模式104
6.1 重溫強(qiáng)封裝性104
6.1.1 深度反射105
6.1.2 開(kāi)放式模塊和包106
6.1.3 依賴注入109
6.2 對(duì)模塊的反射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 解析容器中的平臺(tái)模塊132
第二部分 遷移
第7章 沒(méi)有模塊的遷移134
7.1 類路徑已經(jīng)“死”了?135
7.2 庫(kù)、強(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 一個(gè)簡(jiǎn)單示例149
8.3 混合類路徑和模塊路徑150
8.4 自動(dòng)模塊152
8.5 開(kāi)放式包155
8.6 開(kāi)放式模塊157
8.7 破壞封裝的VM參數(shù)158
8.8 自動(dòng)模塊和類路徑158
8.9 使用jdeps161
8.10 動(dòng)態(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 使用自動(dòng)模塊174
9.5 Java平臺(tái)依賴項(xiàng)和自動(dòng)模塊176
9.6 開(kāi)放用于反射的包176
9.7 解決非法訪問(wèn)問(wèn)題177
9.8 重構(gòu)到多個(gè)模塊178
第10章 庫(kù)遷移180
10.1 模塊化之前181
10.2 選擇庫(kù)模塊名稱181
10.3 創(chuàng)建模塊描述符184
10.4 使用模塊描述符更新庫(kù)186
10.5 針對(duì)較舊的Java版本187
10.6 庫(kù)模塊依賴關(guān)系188
10.6.1 內(nèi)部依賴關(guān)系188
10.6.2 外部依賴關(guān)系191
10.7 針對(duì)多個(gè)Java版本192
10.7.1 多版本JAR192
10.7.2 模塊化多版本JAR195
第三部分 模塊化開(kāi)發(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章 測(cè)試模塊207
12.1 黑盒測(cè)試208
12.2 使用JUnit進(jìn)行黑盒測(cè)試210
12.3 白盒測(cè)試212
12.4 測(cè)試工具216
第13章 使用自定義運(yùn)行時(shí)映像進(jìn)行縮減217
13.1 靜態(tài)鏈接和動(dòng)態(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)行時(shí)映像228
第14章 模塊化的未來(lái)229
14.1 OSGi230
14.2 Java EE232
14.3 微服務(wù)232
14.4 下一步233