|
java自学网(www.javazx.com)-java论坛,java电子书推荐:《 Java 9模块化开发:核心原则与实践》, b' n6 S# d' Q
java电子书推荐理由: Java9向Java平台引入了模块系统,这是一个非常重要的飞跃,标志着模块化Java软件开发的新纪元。当需要创建灵活且易于维护的代码时,模块化是一个关键的架构设计原则。本书给出了Java模块系统的明确概述,并演示了如何通过创建模块化应用程序来帮助管理以及降低复杂性。作者引导我们了解了模块系统中的相关概念以及工具,介绍了将现有代码迁移到模块中的模式以及以模块方式构建新应用程序的方法。
( X5 H# f0 V4 _+ H/ p8 L& q% H6 ~
) r9 c7 U9 f+ J+ ^: R作者:(荷)桑德·马克
8 Y7 @8 e! H, o: P6 V出版社:机械工业出版社7 U6 U6 ]6 g! ?* ?7 [
出版时间:2018年06月
9 _% _4 x% ], ]书籍价格:69.0元
( o8 w- c6 a- s, G8 H
o0 y* a" }9 g% v6 N# t) i
& a$ X: }: |% k# S( i) a$ G9 P, Q7 T; K
java电子书目录:7 S# Q1 ?' J1 i7 V
第一部分 Java模块系统介绍
j+ e3 K) f; c& Y0 [- T+ F/ d第1章 模块化概述81 L$ Q. \9 i6 W& C
1.1 什么是模块化9
" ^/ a2 k! U5 y4 |1.2 在Java 9之前106 \8 P. h1 `) v* F
1.2.1 将JAR作为模块?11
% \$ f. i7 z4 n3 }) g& f1.2.2 类路径地狱13
3 j: K4 ]( w9 b0 ]' u3 s1.3 Java 9模块14- t" T! o2 ]* X5 O" E" V4 J
第2章 模块和模块化JDK18
5 A9 D1 L3 K3 R4 a: E4 I1 |! }+ N' {2.1 模块化JDK19; m. ]5 U, ]* n
2.2 模块描述符22
1 K! E9 b3 P1 P; U* |- w; h. m7 B; {! n2.3 可读性23' t8 z1 {( h: i$ |
2.4 可访问性24
c( r. y+ V4 I f. ~6 T2.5 隐式可读性25
; K% R' \3 t) ]7 R5 E2.6 限制导出29
& K7 Y! Y1 v6 {2 l; m/ R) w2.7 模块解析和模块路径29' f" g6 P; e9 T
2.8 在不使用模块的情况下使用模块化JDK31& b# k1 O6 |' B6 O" e! M6 t
第3章 使用模块334 W l2 X4 g$ h' P3 V$ h
3.1 第一个模块335 j- q9 A4 c% `* x
3.1.1 剖析模块33
- {; E( a/ `& K& \" ]3.1.2 命名模块353 {) G7 |- G- D" F5 R8 r6 \
3.1.3 编译36
& G7 q2 q8 s4 Z6 z. @1 R3.1.4 打包37
, S% y: h3 ]. @. ~* S3.1.5 运行模块37
# B) |) J; J( F6 E* D$ k3.1.6 模块路径39
3 X" N) c* b: T& O8 `3.1.7 链接模块40
) s2 y4 D [# w" k4 Q- U. O9 p3.2 任何模块都不是一座孤岛418 ^4 @ @7 l# I" l4 U
3.2.1 EasyText示例介绍41$ Y) e4 e9 w7 e R
3.2.2 两个模块43
/ M5 _1 S! Q/ K! C l3.3 使用平台模块46
' y+ o' w0 N \6 c# V8 l. \7 S3.3.1 找到正确的平台模块46" a) E: A; v+ z( ]+ X9 `
3.3.2 创建GUI模块47
- G- Z, z# Y. v$ {) A8 S3.4 封装的限制51
" m |) ^0 H9 U Q& ~& s1 b$ _第4章 服务54+ K! n, O& `# X: p
4.1 工厂模式54- G. ?" a2 _! [
4.2 用于实现隐藏的服务57
% o0 R2 y4 Z7 X, ^9 O4 R) H4.2.1 提供服务57
% J- C; R5 e* y/ \+ x4.2.2 消费服务59
3 R1 M# K8 L* J- x0 U4.2.3 服务生命周期61% D& D1 h- @7 S% E; Y9 ~
4.2.4 服务提供者方法62
6 ]4 q$ m. u* A5 F* Y7 ^2 W4.3 工厂模式回顾64" f, Y' G9 U0 w9 R
4.4 默认服务实现65% h1 R, L% F* N' t* o. W
4.5 服务实现的选择66
7 N7 x9 ?# {# i& y A4.6 具有服务绑定的模块解析68
; ^# F. G3 k c! p4.7 服务和链接70* X E. I1 G& I4 Y, q* V/ u
第5章 模块化模式73
: |8 J0 q! A" A+ B# A3 e5.1 确定模块边界74
+ F% b' x4 P& m4 T; n8 ?5.2 精益化模块76
, \" r2 _3 Y. Q9 e5.3 API模块76
( a' j* y# t, T9 B0 [; c8 f$ e5.3.1 API模块中应该包含什么77& V2 `) ?7 f; e& q* B
5.3.2 隐式可读性78( ^1 `; ]( D6 V$ t
5.3.3 带有默认实现的API模块81
9 q5 ]0 O& P6 P5.4 聚合器模块82# U2 W% y: q& O% T! B* M' ?
5.4.1 在模块上构建一个外观83: O. {6 C( ~1 G/ G, t: c
5.4.2 安全拆分模块842 ~! T0 l% P. q8 i+ }7 m
5.5 避免循环依赖86
, U( j. R! Z; k$ E) p* }( V( Z9 q* j5.5.1 拆分包86
& P& y0 J { F/ O5 d/ t2 H5.5.2 打破循环87
; D2 C- \* k2 ~9 {5.6 可选的依赖关系90
- |, z7 d* j4 s0 V3 E6 u5.6.1 编译时依赖关系919 ]5 `# C, X* F8 q5 \
5.6.2 使用服务实现可选依赖关系95* C1 D7 X& H0 u- n/ H, D. q0 A3 k( W
5.7 版本化模块96) q' O' X* P' t8 L( f o
5.8 资源封装99' P) f! R' O$ p2 K, o
5.8.1 从模块加载资源100. x2 U' a n1 M3 R
5.8.2 跨模块加载资源101 l( a9 d2 l* U# e( n
5.8.3 使用ResourceBundle类102/ { l: u" |" H" t) |3 x2 D
第6章 高级模块化模式104
. A7 q- B# j7 p2 o" `& j2 q5 s4 {6.1 重温强封装性104
/ a' B9 `7 l2 [) r r6.1.1 深度反射105
* z: [: P3 O) n6.1.2 开放式模块和包106/ V/ l( b8 |6 x% c
6.1.3 依赖注入109
* d- w1 ~5 }8 ^ B2 ^: Q: F1 I! \% r6.2 对模块的反射111, @9 g% ^, [9 }1 d! G
6.2.1 内省112" U9 U( }8 A& `* |) \2 q
6.2.2 修改模块113
- B5 q1 n# H8 `) Z- l+ G% x J6.2.3 注释114" h; O1 Y8 o2 C$ W9 r
6.3 容器应用程序模式1151 ~# S7 Y& \' @( q { N) b
6.3.1 层和配置1163 u( f% s# ~- ?( j* O
6.3.2 层中的类加载119
& w" \; Z9 X3 _" u! S) p$ t# z% m0 D6.3.3 插件体系结构122' O- f4 B. c# g0 p
6.3.4 容器体系结构127
n) X$ S# L0 d2 v x0 e( _6.3.5 解析容器中的平台模块1322 K" w! P: V- Z9 ]- O1 Z
第二部分 迁移
) f$ p, X0 M- ~第7章 没有模块的迁移134
8 o! W* c3 S4 O- g! A) P1 |7.1 类路径已经“死”了?135
# ?2 c. P- b9 v0 A! k& v7.2 库、强封装和JDK 9类路径135
! v0 s/ D+ }! O/ n1 Q7.3 编译和封装的API138
( O3 v- q( K' l: r7.4 删除的类型141* m( W* u& `7 N+ U
7.5 使用JAXB和其他Java EE API142
! N5 b" j, B T. @7.6 jdk.unsupported模块145
]0 m4 M+ Z, l M$ p5 X$ e& I' _7.7 其他更改1460 u$ a8 B8 g* r
第8章 迁移到模块148
3 i8 [5 [2 X T H# ?& r" p/ l8.1 迁移策略148
% Y* j% L L6 ^! n# P4 V' G$ z8.2 一个简单示例149/ |/ e# u7 o/ ^8 \
8.3 混合类路径和模块路径150
3 H/ p3 c, E( Q# W' m6 {! g8.4 自动模块152
1 _! ^! |6 [# Z( P4 f# W- c8.5 开放式包155
( ~+ e0 ?& B& }/ X! o1 e5 N8.6 开放式模块157
, m4 T, K. Q7 Z% J# c$ a' {8.7 破坏封装的VM参数1580 M6 n5 B* X& V' d1 @
8.8 自动模块和类路径1581 M/ N* y' z1 \( }- X! _
8.9 使用jdeps161
. b, ~1 r7 t: T0 p; d* K) `$ E; _4 T8.10 动态加载代码164
0 D1 H$ S% s+ y& i8 T! |7 y8.11 拆分包166" g* ?4 T: I5 @& P" R+ W; f
第9章 迁移案例研究:Spring和Hibernate1679 h$ ?" Q$ W( t) U; Y
9.1 熟悉应用程序1670 h* V# _: A4 w% G- i6 v% B* R
9.2 使用Java 9在类路径上运行172& J8 g4 w+ }. \* _
9.3 设置模块173
& ]6 Y5 a* V% _2 a/ ~# \! q! f9.4 使用自动模块174! k; }: K1 _8 x R% x g
9.5 Java平台依赖项和自动模块176$ j3 M, E5 T$ x1 Z& D2 a1 C
9.6 开放用于反射的包176
% V4 ^7 S( Z! c" O) \9.7 解决非法访问问题177+ N8 L1 ~& Q! f% D) J
9.8 重构到多个模块1781 G% s/ M4 T/ g) Q) O6 z
第10章 库迁移180+ i% E$ `; P# e
10.1 模块化之前181 m% o1 c9 `3 h# O! A1 ~
10.2 选择库模块名称1819 ~: S/ z% A) S) S3 F
10.3 创建模块描述符184
. \1 t4 Y) y8 g: v' I10.4 使用模块描述符更新库186
4 f$ B1 Y9 L/ ~: c10.5 针对较旧的Java版本187
$ J: K- g0 {9 k2 |10.6 库模块依赖关系188
" h4 {: ~; j5 M, `7 M1 U2 `10.6.1 内部依赖关系188
* Z* D0 f/ G4 a0 Q10.6.2 外部依赖关系191" o0 f) z" U: F! C
10.7 针对多个Java版本192) L6 o# a+ Z5 L1 Y) }5 O! J/ ^
10.7.1 多版本JAR1923 o% p$ C0 L6 F7 ^
10.7.2 模块化多版本JAR195' |# k/ _4 y4 X' `
第三部分 模块化开发工具3 @3 w1 S% _" q$ x) ?
第11章 构建工具和IDE198! j$ w/ x# O7 A( L$ Z+ h
11.1 Apache Maven198
# k U# _9 Z8 z11.1.1 多模块项目200* g) @9 l$ t6 V) k5 \
11.1.2 使用Apache Maven创建EasyText示例200# ?3 }% Y+ a; Y" W5 ]$ y
11.1.3 使用Apache Maven运行模块化的应用程序2048 ^/ K! U, U. s
11.2 Gradle205
5 M# G/ J# a+ M) V9 a11.3 IDE205
# d$ D$ p' `' ~2 e }. S第12章 测试模块2071 p/ t S7 n8 M% g7 \- C
12.1 黑盒测试208* e4 Z& n! S" a4 E6 K6 D' [
12.2 使用JUnit进行黑盒测试210
6 u' u) W% `( O8 L9 G: v12.3 白盒测试212
4 W! z* E4 r# ~( Q7 b12.4 测试工具216
' F" T+ E' I4 m+ s! X7 _4 N% N: x第13章 使用自定义运行时映像进行缩减2177 S- t+ s1 W! b7 |2 r
13.1 静态链接和动态链接218
3 K: J- c9 r3 q13.2 使用jlink219' B: q; B, @$ c) v. J `
13.3 查找正确的服务提供者模块223, h# R* ~' I6 B: }$ j
13.4 链接期间的模块解析223
8 q$ e3 C. T& l( u1 |0 b; d3 G13.5 基于类路径应用程序的jlink224
+ p2 K4 y9 ^( t" H% [% x6 X. M13.6 压缩大小225; P k9 K" Y! _9 A, G
13.7 提升性能2279 e( h; j' ?6 C# K
13.8 跨目标运行时映像228
0 m9 x5 ]) [6 u& Y第14章 模块化的未来2291 p/ }5 J& r4 V! ^+ \
14.1 OSGi230
& G+ `+ S* F2 {: s14.2 Java EE232$ b) [. ]& h n3 m& i- `
14.3 微服务232% m! q9 |, Z( o" s* X# t
14.4 下一步233
- o# S, ^1 T: vJava资料百度网盘下载地址链接(百度云):Java9模块化开发核心原则与实践@www.javazx.com.pdf【密码回帖可见】
( C+ l# L$ A8 n+ A5 f/ F) [" Q) v ~ X8 ~$ J% q2 Q5 s! m# r1 Q9 O4 Q
! u0 m5 h z S4 W4 |: F. t5 t
) i' t9 |, X) A
W5 u8 U. \- ?0 p: d% D4 ^3 B% J, E, [( p
; I- C8 r4 [; u+ u9 ]7 ]
|
|