内容简介 · · · · · ·
本书是《Spring Boot 编程思想》的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplication。《Spring Boot编程思想(核心篇)》的讨论以Spring Boot为中心,议题发散至Spring技术栈、JSR及Java。希望透过全局的视角,帮助读者了解Spring Boot变迁的历程;经过多方的比较,帮助读者理解Spring Boot特性的原理;整合标准的规范,帮助读者掌握Spring Boot设计的哲学。
《Spring Boot编程思想(核心篇)》适合对Spring Boot感兴趣的读者阅读。
作者简介 · · · · · ·
小马哥(mercyblitz)
“我是谁?”是一个不错的哲学问题。
在“江湖”上,大家亲切地称我为“小马哥”,我做公益,也做生意;在社区中,我又以 mercyblitz的身份出没在众多开源项目中,“mercy”符合我的性格,“blitz”说明我的风格。
承蒙错爱,不少朋友对我过去的分享称赞有加,然而“千夫诺诺,不如一士谔谔”,时常又让自己陷入一种迷思,到底是平台的帮衬,还是个人的确禁得起考验?于是我选择隐匿真名,希望能够听到更真实的声音。尽管在互联网时代,个人信息几乎无处遁形。无可讳言,我所属的公司及职业头衔必然会形成“舞台效应”,如此一来,不但违背了写书的初衷,而且模糊了讨论的焦点。所以,本书既不会出现这些信息,又不会搞“个人崇拜”。它的价值应该体现在知识的传播上,至于它的优劣则由诸君来评判。
个人简介
Apache Dubbo PMC、Sprin...
小马哥(mercyblitz)
“我是谁?”是一个不错的哲学问题。
在“江湖”上,大家亲切地称我为“小马哥”,我做公益,也做生意;在社区中,我又以 mercyblitz的身份出没在众多开源项目中,“mercy”符合我的性格,“blitz”说明我的风格。
承蒙错爱,不少朋友对我过去的分享称赞有加,然而“千夫诺诺,不如一士谔谔”,时常又让自己陷入一种迷思,到底是平台的帮衬,还是个人的确禁得起考验?于是我选择隐匿真名,希望能够听到更真实的声音。尽管在互联网时代,个人信息几乎无处遁形。无可讳言,我所属的公司及职业头衔必然会形成“舞台效应”,如此一来,不但违背了写书的初衷,而且模糊了讨论的焦点。所以,本书既不会出现这些信息,又不会搞“个人崇拜”。它的价值应该体现在知识的传播上,至于它的优劣则由诸君来评判。
个人简介
Apache Dubbo PMC、Spring Cloud Alibaba项目架构师。目前主要负责集团中间件开源项目、微服务技术实施、架构演进、基础设施构建等工作。通过了SUN Java(SCJP、SCWCD、SCBCD)及Oracle OCA等认证。
目录 · · · · · ·
第1章 初览Spring Boot 2
1.1 Spring Framework时代 2
1.2 Spring Boot简介 3
1.3 Spring Boot的特性 5
1.4 准备运行环境 5
· · · · · · (更多)
第1章 初览Spring Boot 2
1.1 Spring Framework时代 2
1.2 Spring Boot简介 3
1.3 Spring Boot的特性 5
1.4 准备运行环境 5
1.4.1 装配JDK 8 5
1.4.2 装配Maven 6
1.4.3 装配IDE(集成开发环境) 8
第2章 理解独立的Spring应用 9
2.1 创建Spring Boot应用 10
2.1.1 命令行方式创建Spring Boot应用 11
2.1.2 图形化界面创建Spring Boot应用 21
2.1.3 创建Spring Boot应用可执行JAR 29
2.2 运行Spring Boot应用 31
2.2.1 执行Spring Boot应用可执行JAR 32
2.2.2 Spring Boot应用可执行JAR资源结构 32
2.2.3 FAT JAR和WAR执行模块——spring-boot-loader 36
2.2.4 JarLauncher的实现原理 40
第3章 理解固化的Maven依赖 58
3.1 spring-boot-starter-parent与spring-boot-dependencies简介 58
3.2 理解spring-boot-starter-parent与spring-boot- dependencies 61
第4章 理解嵌入式Web容器 70
4.1 嵌入式Servlet Web容器 71
4.1.1 Tomcat作为嵌入式Servlet Web容器 72
4.1.2 Jetty作为嵌入式Servlet Web容器 77
4.1.3 Undertow作为嵌入式Servlet Web容器 80
4.2 嵌入式Reactive Web容器 82
4.2.1 UndertowServletWebServer作为嵌入式Reactive Web容器 82
4.2.2 UndertowWebServer作为嵌入式Reactive Web容器 84
4.2.3 WebServerInitializedEvent 91
4.2.4 Jetty作为嵌入式Reactive Web容器 93
4.2.5 Tomcat作为嵌入式Reactive Web容器 94
第5章 理解自动装配 96
5.1 理解@SpringBootApplication注解语义 97
5.2 @SpringBootApplication属性别名 103
5.3 @SpringBootApplication标注非引导类 107
5.4 @EnableAutoConfiguration激活自动装配 108
5.5 @SpringBootApplication“继承”@Configuration CGLIB提升特性 110
5.6 理解自动配置机制 112
5.7 创建自动配置类 116
第6章 理解Production- Ready特性 119
6.1 理解Production-Ready一般性定义 120
6.2 理解Spring Boot Actuator 123
6.3 Spring Boot Actuator Endpoints 124
6.4 理解“外部化配置 129
6.5 理解“规约大于配置” 132
6.6 小马哥有话说 134
6.6.1 Spring Boot作为微服务中间件 134
6.6.2 Spring Boot作为Spring Cloud基础设施 135
6.7 下一站:走向自动装配 135
第2部分 走向自动装配
第7章 走向注解驱动编程(Annotation-Driven) 138
7.1 注解驱动发展史 138
7.1.1 注解驱动启蒙时代:Spring Framework 1.x 138
7.1.2 注解驱动过渡时代:Spring Framework 2.x 139
7.1.3 注解驱动黄金时代:Spring Framework 3.x 142
7.1.4 注解驱动完善时代:Spring Framework 4.x 146
7.1.5 注解驱动当下时代:Spring Framework 5.x 151
7.2 Spring核心注解场景分类 152
7.3 Spring注解编程模型 154
7.3.1 元注解(Meta-Annotations) 154
7.3.2 Spring模式注解(Stereotype Annotations) 155
7.3.3 Spring组合注解(Composed Annotations) 187
7.3.4 Spring注解属性别名和覆盖(Attribute Aliases and Overrides) 195
第8章 Spring注解驱动设计模式 225
8.1 Spring @Enable模块驱动 225
8.1.1 理解@Enable模块驱动 225
8.1.2 自定义@Enable模块驱动 226
8.1.3 @Enable模块驱动原理 236
8.2 Spring Web自动装配 250
8.2.1 理解Web自动装配 250
8.2.2 自定义Web自动装配 254
8.2.3 Web自动装配原理 258
8.3 Spring条件装配 270
8.3.1 理解配置条件装配 271
8.3.2 自定义配置条件装配 274
8.3.3 配置条件装配原理 277
第9章 Spring Boot自动装配 292
9.1 理解Spring Boot自动装配 295
9.1.1 理解@EnableAutoConfiguration 296
9.1.2 优雅地替换自动装配 298
9.1.3 失效自动装配 298
9.2 Spring Boot自动装配原理 299
9.2.1 @EnableAutoConfiguration读取候选装配组件 301
9.2.2 @EnableAutoConfiguration排除自动装配组件 305
9.2.3 @EnableAutoConfiguration过滤自动装配组件 307
9.2.4 @EnableAutoConfiguration自动装配事件 313
9.2.5 @EnableAutoConfiguration自动装配生命周期 317
9.2.6 @EnableAutoConfiguration排序自动装配组件 324
9.2.7 @EnableAutoConfiguration自动装配BasePackages 332
9.3 自定义Spring Boot自动装配 337
9.3.1 自动装配Class命名的潜规则 338
9.3.2 自动装配package命名的潜规则 338
9.3.3 自定义Spring Boot Starter 340
9.4 Spring Boot条件化自动装配 346
9.4.1 Class条件注解 347
9.4.2 Bean条件注解 358
9.4.3 属性条件注解 370
9.4.4 Resource条件注解 376
9.4.5 Web应用条件注解 391
9.4.6 Spring表达式条件注解 397
9.5 小马哥有话说 401
9.6 下一站:理解SpringApplication 402
第3部分 理解SpringApplication
第10章 SpringApplication初始化阶段 405
10.1 SpringApplication构造阶段 405
10.1.1 理解SpringApplication主配置类 406
10.1.2 SpringApplication的构造过程 410
10.1.3 推断Web应用类型 411
10.1.4 加载Spring应用上下文初始化器(ApplicationContextInitializer) 412
10.1.5 加载Spring应用事件监听器(ApplicationListener) 415
10.1.6 推断应用引导类 416
10.2 SpringApplication配置阶段 417
10.2.1 自定义SpringApplication 417
10.2.2 调整SpringApplication设置 417
10.2.3 增加SpringApplication配置源 420
10.2.4 调整Spring Boot外部化配置 423
第11章 SpringApplication运行阶段 425
11.1 SpringApplication准备阶段 425
11.1.1 理解SpringApplicationRunListeners 426
11.1.2 理解SpringApplicationRunListener 428
11.1.3 理解Spring Boot事件 431
11.1.4 理解Spring事件/监听机制 432
11.1.5 理解Spring Boot事件/监听机制 492
11.1.6 装配ApplicationArguments 509
11.1.7 准备ConfigurableEnvironment 512
11.1.8 创建Spring应用上下文(ConfigurableApplicationContext) 512
11.1.9 Spring应用上下文运行前准备 516
11.2 Spring应用上下文启动阶段 537
11.3 Spring应用上下文启动后阶段 539
11.3.1 afterRefresh方法签名的变化 540
11.3.2 afterRefresh方法语义的变化 541
11.3.3 Spring Boot事件ApplicationStartedEvent语义的变化 543
11.3.4 执行CommandLineRunner和ApplicationRunner 548
第12章 SpringApplication结束阶段 550
12.1 SpringApplication正常结束 550
12.2 SpringApplication异常结束 555
12.2.1 Spring Boot异常处理 556
12.2.2 错误分析报告器——FailureAnalysisReporter 562
12.2.3 自定义实现FailureAnalyzer和FailureAnalysisReporter 564
12.2.4 Spring Boot 2.0重构handleRunFailure和reportFailure方法 566
12.2.5 Spring Boot 2.0的SpringBootExceptionReporter接口 567
第13章 Spring Boot应用退出 571
13.1 Spring Boot应用正常退出 572
13.1.1 ExitCodeGenerator Bean生成退出码 572
13.1.2 ExitCodeGenerator Bean退出码使用场景 576
13.2 Spring Boot应用异常退出 580
13.2.1 ExitCodeGenerator异常使用场景 582
13.2.2 ExitCodeExceptionMapper Bean映射异常与退出码 587
13.2.3 退出码用于SpringApplication异常结束 589
13.3 小马哥有话说 594
13.4 下一站:运维篇 596
· · · · · · (收起)
喜欢读"Spring Boot编程思想(核心篇)"的人也喜欢的电子书 · · · · · ·
喜欢读"Spring Boot编程思想(核心篇)"的人也喜欢 · · · · · ·
-
- 实战Java高并发程序设计 7.9
-
- Netty实战 7.5
-
- 第一本Docker书(修订版) 8.0
-
- 高性能MySQL(第4版) 9.2
-
- 算法技术手册 8.1
-
- 编程珠玑(第2版•修订版) 8.4
-
- 深入理解并行编程 8.6
-
- Java语言规范 7.7
Spring Boot编程思想(核心篇)的书评 · · · · · · ( 全部 8 条 )

小马哥没搞懂怎么说编程思想,又不屑于做工具书,就四不像了
> 更多书评 8篇
以下书单推荐 · · · · · · ( 全部 )
- Java 技术栈经典书籍 (镁铝合金)
- 想读 (dbtzl)
- 买 (ミドリ)
- 我的藏经阁 (刘普)
- Spring (ih小鬼)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于Spring Boot编程思想(核心篇)的评论:
feed: rss 2.0
0 有用 Zane 2020-05-03 11:48:31
道理自己搞明白是一层境界,能对外讲清是另一层。孔子述而不作不知有没有这个原因。本书也不容易,应该是国内第一本详尽讲述springboot的书籍。
1 有用 沉寂之舟 2020-07-09 00:30:13
说实话,总体还是很惊艳的,确实指出了之前一直忽略的问题,对spring boot的构成进行了解析.部分内容就有些拖沓了,有时候十分细致的贴了分析路径,有时候却并不完整,还是要自己跟代码才能真正理解,当然也可能是我没有跟上作者的思路.比如写ConditionalOnResource,怎么就去扩展到ProtocolResolver去了,还多个版本穿插.还有分析spring boot启动,前面liste... 说实话,总体还是很惊艳的,确实指出了之前一直忽略的问题,对spring boot的构成进行了解析.部分内容就有些拖沓了,有时候十分细致的贴了分析路径,有时候却并不完整,还是要自己跟代码才能真正理解,当然也可能是我没有跟上作者的思路.比如写ConditionalOnResource,怎么就去扩展到ProtocolResolver去了,还多个版本穿插.还有分析spring boot启动,前面listener分析居然搞了70页,这些内容不能说没有关联,但是真的让人感觉很没有章法.另外作者的写作风格,也过于自信了吧. (展开)
0 有用 i!i 2019-11-15 07:43:05
泛读了一遍,基本相当慕课网的前三章,但是比慕课网讲的细很多。深入了很多细节,作者试图通过深入源码来介绍Springboot的设计思想。Spring boot真的是构建在Spring之上的微服务基石。SpringApplication是ConfigureApplicationContext的一个增强,在Spring中也有这样的增强比如context里是beanfactory。Spring的事件这部分... 泛读了一遍,基本相当慕课网的前三章,但是比慕课网讲的细很多。深入了很多细节,作者试图通过深入源码来介绍Springboot的设计思想。Spring boot真的是构建在Spring之上的微服务基石。SpringApplication是ConfigureApplicationContext的一个增强,在Spring中也有这样的增强比如context里是beanfactory。Spring的事件这部分近100页,没细看,需要重新阅读,这部分内容比较难一点,涉及到设计模式。优秀的框架对设计模式的运用真的是非常好。 (展开)
0 有用 不才人 2019-12-25 22:51:49
不推荐初学者阅读
3 有用 哈哈哈哈 2019-09-28 11:07:10
超级啰嗦,一个简单概念往往喜欢花很多篇幅去废话, 很多简单东西搞复杂了
0 有用 白头翁 2023-07-07 09:59:52 上海
读了几章,真读不下去了,感觉看了一堆博客。讲的不好,没用的废话一堆,重点一带而过,还得配合百度才能明白。作者一直在自称哥,原理是他猜测推测出来的,就很讽刺。不过作者也用心去解读官方文档了,给个三星吧。
0 有用 黄浦Brahms 2023-06-24 01:14:21 上海
细节代码太多,只能粗读,不能迷失在细节里。
0 有用 李杨 2023-05-11 11:30:35 北京
内容偏向入门,标题写的太狠了。 作者表述能力非常非常非常差,逻辑非常混乱。 大量粘贴官方文档,以及Google内容。
0 有用 Zhang_Eaky 2023-01-11 22:58:56 浙江
懂的人不需要看,不懂的人看不明白,可读性很差。作者的叙述能力一言难尽。
0 有用 梦逍遥 2022-10-29 13:05:20 安徽
600页的书籍,去掉代码示例目测只剩不到150页,名曰编程思想,真是汗颜。怎么说呢,还是有所收获的,起码知道了一些框架的演变史,小技巧。如果写成博客源码分析会更好吧,适合给希望切入源码阅读的人看。失望吧。