|
Java电子书:Spring Boot编程思想(核心篇) PDF 电子书 Java吧 java8.com
+ p `8 Q8 s5 S6 s2 D- S9 ^6 E" v7 a! G( V
作者:小马哥(mercyblitz)出版社:电子工业出版社出版时间:2019年04月
3 c* O. C4 b# d1 f! U2 z& v/ ^& `7 A" Q5 n, d6 a) U% X
编号:P0011【Java吧 java8.com】
' _( R: \( s! `' F/ a' q5 D0 k5 z4 p) P4 l

' o+ e. A5 t) @3 H' D6 I% w* t, \7 q# G6 h M3 V# _2 O
目录:第1部分 总览Spring Boot9 `( e" g f$ t0 x, B, I
第1章 初览Spring Boot 25 g; f$ b- ?( S+ n
1.1 Spring Framework时代 2% }6 [3 v3 ^# [; P
1.2 Spring Boot简介 3
0 I4 X$ [8 t, M+ w1.3 Spring Boot的特性 51 k7 n& M1 J& X: S
1.4 准备运行环境 5# Z2 Y k9 O* _' J6 j
1.4.1 装配JDK 8 5
! o8 F' f# U% _! A7 t: \# \1.4.2 装配Maven 6
5 \% R6 q; K# i6 z1.4.3 装配IDE(集成开发环境) 88 s) h# r$ \" f* G5 ] @0 H
第2章 理解独立的Spring应用 9
% {2 t) g( Z. l/ C! Q; f1 S6 [1 @ U% g7 t2.1 创建Spring Boot应用 10
4 [8 H$ M2 d5 e \' v2 s+ _0 D) Z2.1.1 命令行方式创建Spring Boot应用 117 \6 \- D1 R- j, Y1 q$ G
2.1.2 图形化界面创建Spring Boot应用 21
: F8 Q; ^4 y% E2.1.3 创建Spring Boot应用可执行JAR 293 f) f0 c8 I5 j: R- Z2 h( Q. R
2.2 运行Spring Boot应用 314 w) z1 s9 d& f* @! X& q
2.2.1 执行Spring Boot应用可执行JAR 32
% Z! G4 Z) f9 b# E7 e2.2.2 Spring Boot应用可执行JAR资源结构 327 E4 T; F8 |/ F. l
2.2.3 FAT JAR和WAR执行模块——spring-boot-loader 362 i% G# c/ Q& W
2.2.4 JarLauncher的实现原理 40
8 P4 [# A' u! S v+ Z$ y第3章 理解固化的Maven依赖 58
7 D& s3 C8 g3 x! o3.1 spring-boot-starter-parent与spring-boot-dependencies简介 58
% z* z& H' ^) h1 n$ ]3.2 理解spring-boot-starter-parent与spring-boot- dependencies 61
! s% S1 C0 L6 F0 K) I2 t第4章 理解嵌入式Web容器 70
9 J' s) J+ {' d2 e# ^- I: R. {% @4.1 嵌入式Servlet Web容器 71# s" W- C/ Q# N. d9 K( X
4.1.1 Tomcat作为嵌入式Servlet Web容器 72
; p; m' Q; p1 n: U- q4.1.2 Jetty作为嵌入式Servlet Web容器 77) A# ]/ U1 |# }) N$ M0 n2 u1 U
4.1.3 Undertow作为嵌入式Servlet Web容器 80
. l1 A/ h/ k0 d# l' f* F$ p4.2 嵌入式Reactive Web容器 82
' g8 I) Z {7 F( R' H) m' S; I4.2.1 UndertowServletWebServer作为嵌入式Reactive Web容器 82% I3 @( G4 d/ T& W" t
4.2.2 UndertowWebServer作为嵌入式Reactive Web容器 84
z6 \5 k- r6 d+ x M6 ?' H4.2.3 WebServerInitializedEvent 918 x4 X0 E$ W* m) J
4.2.4 Jetty作为嵌入式Reactive Web容器 93+ m, X/ J) Q7 M+ o. T
4.2.5 Tomcat作为嵌入式Reactive Web容器 94/ |0 ]; g+ L0 p# N
第5章 理解自动装配 96
: u/ ?1 H; n, [5.1 理解@SpringBootApplication注解语义 97# l4 T6 D/ M- e% I
5.2 @SpringBootApplication属性别名 103$ c' h* u s6 y' H
5.3 @SpringBootApplication标注非引导类 1076 i5 M$ j7 U* w- N- K X
5.4 @EnableAutoConfiguration激活自动装配 108
* n- o5 w& C" X1 W. W& o4 U/ d) c- J5.5 @SpringBootApplication“继承”@Configuration CGLIB提升特性 1100 C* A @7 b5 t5 D2 a( m1 p
5.6 理解自动配置机制 112
5 s! H: ~' @* s# l! A5.7 创建自动配置类 116
% p$ y0 |# [4 j& d第6章 理解Production- Ready特性 119
# r- K8 V2 R: j- J0 u6.1 理解Production-Ready一般性定义 1205 T- s: N4 y/ q& n
6.2 理解Spring Boot Actuator 123' A# d5 m) k+ s3 V
6.3 Spring Boot Actuator Endpoints 124
3 N; Y ^" [- p) R( H7 x6.4 理解“外部化配置” 129
u1 v* _8 \7 H; q) n: {6.5 理解“规约大于配置” 132 b* f1 H$ Q8 P$ W4 r
6.6 小马哥有话说 134
* F% v6 s+ X8 F! M4 N5 e* s6.6.1 Spring Boot作为微服务中间件 1342 g# | D! U5 H) O: [. M/ p, x
6.6.2 Spring Boot作为Spring Cloud基础设施 135
7 y) E8 R* K, ~$ q6.7 下一站:走向自动装配 135- g$ j* C3 j8 P6 ^5 f& s( q$ p4 {
第2部分 走向自动装配
: V! l! o2 R$ `1 g- Z第7章 走向注解驱动编程(Annotation-Driven) 138
1 p: @0 f8 Q( s( d* ]/ @2 A5 c7.1 注解驱动发展史 138
8 Y% h* u# ~$ e* ~7.1.1 注解驱动启蒙时代:Spring Framework 1.x 138/ q+ p3 M# A" t" n; [ M
7.1.2 注解驱动过渡时代:Spring Framework 2.x 139+ h) E8 j! E7 L# [
7.1.3 注解驱动黄金时代:Spring Framework 3.x 142- M( f; e6 C$ c) w9 J2 B
7.1.4 注解驱动完善时代:Spring Framework 4.x 146 Q' X- t `" D' S
7.1.5 注解驱动当下时代:Spring Framework 5.x 151. D0 J! q' L2 \8 q, s6 G1 L a
7.2 Spring核心注解场景分类 152
' g. S) G2 B* j7.3 Spring注解编程模型 154
8 y$ G. d: S9 R4 N4 r7.3.1 元注解(Meta-Annotations) 154* {0 h- C2 o) c) T. i1 l/ S/ f
7.3.2 Spring模式注解(Stereotype Annotations) 155
0 s2 d0 w9 F! C! v/ d7.3.3 Spring组合注解(Composed Annotations) 187
5 ?& \% |" I- {* y5 \8 x% j# L7.3.4 Spring注解属性别名和覆盖(Attribute Aliases and Overrides) 195
2 u& v8 b7 n- w第8章 Spring注解驱动设计模式 2251 g: g1 z0 z6 V( R
8.1 Spring @Enable模块驱动 2250 n2 [# i" C. l5 t
8.1.1 理解@Enable模块驱动 2257 C0 l; k8 P) v+ M, [
8.1.2 自定义@Enable模块驱动 226+ f. d- Y$ \' G1 `
8.1.3 @Enable模块驱动原理 236
1 z: M$ l5 {1 |" t1 ]4 _8.2 Spring Web自动装配 2508 A8 |' q, z. h- k' a
8.2.1 理解Web自动装配 2504 m/ D: @- J7 V) U
8.2.2 自定义Web自动装配 2540 |- A" U$ j# F/ x( c" F/ i* m8 t
8.2.3 Web自动装配原理 258
% s( q1 R8 B* e8.3 Spring条件装配 270
* g4 E6 Z9 _; {- A" g8.3.1 理解配置条件装配 271
; j# l1 K3 ]" F! l8.3.2 自定义配置条件装配 2742 e$ r- @& t1 |4 q L0 W
8.3.3 配置条件装配原理 2776 b( r8 ?5 `- c1 o* E* a- @ s
第9章 Spring Boot自动装配 2922 a/ H( Y3 w# |; o1 W# c# l: Z4 o
9.1 理解Spring Boot自动装配 295, z, u& J8 ~+ ?9 Q& }" @
9.1.1 理解@EnableAutoConfiguration 296
( e0 P9 s. d, j. G5 v9.1.2 优雅地替换自动装配 298* B- d( c) L6 e8 e, ~- c
9.1.3 失效自动装配 2985 J0 [- E0 \) D- l1 \
9.2 Spring Boot自动装配原理 299
# `' A- _8 c/ q" b7 C9.2.1 @EnableAutoConfiguration读取候选装配组件 3014 V* `0 w3 S7 Y, I& f: s A) @. M. V
9.2.2 @EnableAutoConfiguration排除自动装配组件 3053 t, Y! w; Q8 r
9.2.3 @EnableAutoConfiguration过滤自动装配组件 307
- d" m6 V V* S& P9.2.4 @EnableAutoConfiguration自动装配事件 313' [: j) y1 K4 ]$ E
9.2.5 @EnableAutoConfiguration自动装配生命周期 317+ P- D- r. S: y6 I, V! ~2 K
9.2.6 @EnableAutoConfiguration排序自动装配组件 324
) V. X7 f8 _" S9.2.7 @EnableAutoConfiguration自动装配BasePackages 332( x, G$ e7 }% }. K- v' L
9.3 自定义Spring Boot自动装配 337
, S; v4 f; ]' ?8 t% n$ S5 p9.3.1 自动装配Class命名的潜规则 338) A, P2 S/ c$ j7 U; y" T
9.3.2 自动装配package命名的潜规则 338& e$ D! H$ E8 c; B. R# W
9.3.3 自定义Spring Boot Starter 340
& P# m t( q9 e* u- E9.4 Spring Boot条件化自动装配 346
& _$ \9 q; F% Y2 Y) K- L0 q5 b9.4.1 Class条件注解 3470 e3 N. ^6 t) X
9.4.2 Bean条件注解 358
: [9 m$ N% c3 m8 B- H9.4.3 属性条件注解 370
; I) o" D3 U% i9.4.4 Resource条件注解 376& U1 z9 j2 A _; H: O4 M
9.4.5 Web应用条件注解 391
. S( A, d4 F7 E& i9.4.6 Spring表达式条件注解 397" i6 Y0 C0 }3 g4 t8 V1 [
9.5 小马哥有话说 401. G# K4 E8 u- N
9.6 下一站:理解SpringApplication 402- K9 q c$ ?) R! G; @
第3部分 理解SpringApplication
) l F/ L+ A# U8 I第10章 SpringApplication初始化阶段 405
2 T$ I# n6 s, R( w" b10.1 SpringApplication构造阶段 4057 X( @, n# L) i, Z- A* O/ N1 z! g
10.1.1 理解SpringApplication主配置类 406
8 _% Y; Y4 G- Z5 t& w( I8 P10.1.2 SpringApplication的构造过程 410
5 @# ] Z2 G! b* F2 f2 L10.1.3 推断Web应用类型 411( s$ A. K! G$ ^! G( o
10.1.4 加载Spring应用上下文初始化器(ApplicationContextInitializer) 412
" a; T2 |) m* J1 f4 L9 y10.1.5 加载Spring应用事件监听器(ApplicationListener) 415
/ t I" T* c# H5 `& B! Q7 E10.1.6 推断应用引导类 416/ H% \$ x; g( B* Q7 L8 }
10.2 SpringApplication配置阶段 417
9 @* D: y/ `8 M10.2.1 自定义SpringApplication 417
7 n7 x- `; T+ e! F4 _% s9 a10.2.2 调整SpringApplication设置 4174 B3 ~9 N9 g" B, V5 t3 I3 n
10.2.3 增加SpringApplication配置源 420
3 o& U& p* m+ K- v2 z ]7 w10.2.4 调整Spring Boot外部化配置 423
" l3 o3 Y5 D, h6 T第11章 SpringApplication运行阶段 425! `- X9 s/ [" g! F0 O
11.1 SpringApplication准备阶段 425
" }7 o9 ]: n0 J11.1.1 理解SpringApplicationRunListeners 4265 w' C. I F: `2 H# J
11.1.2 理解SpringApplicationRunListener 428
: L ~* g, m; i11.1.3 理解Spring Boot事件 431- X: U4 ]+ _, D
11.1.4 理解Spring事件/监听机制 432( Q( [- l/ _% N" W9 s/ n
11.1.5 理解Spring Boot事件/监听机制 492) g' m' Q, e( Q6 P1 f) {1 l
11.1.6 装配ApplicationArguments 509, [* b/ t# B8 l& ~5 e
11.1.7 准备ConfigurableEnvironment 512
7 E: ]* Z j; i* X7 _11.1.8 创建Spring应用上下文(ConfigurableApplicationContext) 512
4 U. C4 _: C' u0 ?) h11.1.9 Spring应用上下文运行前准备 516
) F' X: q+ r+ W11.2 Spring应用上下文启动阶段 537
3 Z. ?" S2 ~7 X N( r11.3 Spring应用上下文启动后阶段 539
) z6 b$ m- @+ }$ W7 c11.3.1 afterRefresh方法签名的变化 540
: O/ Z0 n- m9 U! n* k8 ?, R2 ]11.3.2 afterRefresh方法语义的变化 5419 z$ I! Q: U! Q9 t) C+ r5 V
11.3.3 Spring Boot事件ApplicationStartedEvent语义的变化 543
: U/ v1 Y, }7 U11.3.4 执行CommandLineRunner和ApplicationRunner 548
3 A* c q9 O. q9 H, {: X( O第12章 SpringApplication结束阶段 550
5 w$ O4 P$ d8 ~& N2 q6 o12.1 SpringApplication正常结束 550
[# w; h) a a1 n7 ]' C12.2 SpringApplication异常结束 555
& q* X& ?' m! C9 }4 n- b- S5 p) Y& B12.2.1 Spring Boot异常处理 556& D0 `1 J# I8 d |1 S; V+ O
12.2.2 错误分析报告器——FailureAnalysisReporter 562
. P N4 E* m! @12.2.3 自定义实现FailureAnalyzer和FailureAnalysisReporter 564
2 E3 s1 |% ?+ U' l12.2.4 Spring Boot 2.0重构handleRunFailure和reportFailure方法 566
7 s( h7 m- F2 i6 H7 d) q12.2.5 Spring Boot 2.0的SpringBootExceptionReporter接口 567
/ _- U4 J( e5 {! P' B4 q4 v第13章 Spring Boot应用退出 571: I" L5 h1 A1 O5 h2 [7 w6 ~$ F
13.1 Spring Boot应用正常退出 5728 N" j2 W- C2 B: b
13.1.1 ExitCodeGenerator Bean生成退出码 572" |) V" b! I2 _4 o) Y& w' `
13.1.2 ExitCodeGenerator Bean退出码使用场景 576: o" S: t$ R# r; G
13.2 Spring Boot应用异常退出 580) }0 J& e, k2 H$ r# d
13.2.1 ExitCodeGenerator异常使用场景 582
" X# k6 O2 u! c! [ V4 x0 k13.2.2 ExitCodeExceptionMapper Bean映射异常与退出码 587
% H8 Z/ o* a* f, ^5 \: \, r# S" V13.2.3 退出码用于SpringApplication异常结束 589( Y1 r7 X0 R; a- n ]$ T
13.3 小马哥有话说 594
& y2 P6 V- j. k+ Q3 w3 f* c3 x13.4 下一站:运维篇" k% R. u. c# ]+ w# H& y& M+ Y
支持版权,支持小马哥,请购买正版:http://product.dangdang.com/26922557.html* Q# k3 |; H, p+ m! M k
|
|