欢迎光临
免费的PDF电子书下载网站

Spring Boot技术内幕:架构设计与实现原理 PDF下载

编辑推荐

Spring Boot技术内幕:架构设计与实现原理 PDF下载

(1)本书由Spring Boot布道师、技术专家撰写,从源码级切入,以指导实践为宗旨,可谓深度和实操性兼具。

(2)本书以新版本的【Spring Boot 2.x】的源码为基础,不仅提炼出了Spring Boot源码的核心思想,还对Spring Boot框架中的数十个主流功能模块进行了源码级的分析。

(3)本书在各章相关部分都给出实践指导,还以用独立章节以实际案例的形式对实践应用进行专门指导。

 ;

内容简介

这是一本从源码角度分析Spring Boot底层原理和实现方式,以求帮助读者掌握Spring Boot多场景联合运用、项目性能调优的实践指导书。作者是Spring Boot领域的布道者、技术专家,曾以视频、文章等形式分享自己多年实践及研究Spring Boot的经验,影响近50万该领域的读者。
本书以新版本的Spring Boot 2.x的源码为基础进行分析,不仅提炼出了Spring Boot源码的核心思想,还从多个维度对Spring Boot框架中的数十个主流功能模块进行了源码级的分析,更为难能可贵的是,书中还对Spring Boot外置辅助工具进行了源码级的分析。此外,为了指导读者实践应用,本书除了在各章相关部分给出实践方法外,还以用独立章节以实际案例的形式进行专门指导。
本书从逻辑上可分为4个部分:
第①部分准备部分,包括第1章,这部分主要介绍进行Spring Boot解析需要做的准备工作,包括源码的获取与调试、源码阅读工具等,同时还给出了需要在思想层面做的准备——整体了解源码目录结构和Spring Boot设计思想。
第②部分为原理部分,包含第2~4章内容,着重讲解Spring Boot实现的原理及基本流程,这是Spring Boot的核心之一,也是后面章节的基础。

作者简介

朱智胜

Spring Boot的布道者、技术专家,畅销书作者,技术专栏作者,国内知名技术论坛博客专家,现任某跨境支付公司技术负责人。

精通Spring Boot框架及其源代码,具有多年的Spring Boot框架使用经验。曾基于Spring Boot搭建风控反洗钱系统,支持1.5亿用户及3000亿交易的风控反洗钱数据处理。

精通Java语言,擅长Spring系列框架的使用,对其源码进行过深入研究,拥有10余年Java开发经验。

乐于分享,曾自主录制多套畅销技术视频教程,累计播放超2万人次。通过微信公众号分享的Spring Boot源码解析系列文章,累计阅读量达30万人次,广受读者好评。

Spring Boot技术内幕:架构设计与实现原理 PDF下载

目录

★第一部分 准备篇

  • 第1章 阅读代码前的准备 2

1.1 获取和调试Spring Boot源代码 ; 2

1.1.1 获取Spring Boot的源代码 ; 2

1.1.2 调试Spring Boot的源代码 ; 3

1.2 Spring Boot源代码的目录结构 ; 3

1.2.1 Spring Boot的整体项目结构 ; 4

1.2.2 spring-boot-project项目结构 ; 5

1.3 源代码阅读工具 ; 5

1.4 Spring Boot的设计理念和目标 ; 6

1.4.1 设计理念 ; 7

1.4.2 设计目标 ; 7

1.5 Spring Boot的整体架构 ; 7

 ;

★第二部分 原理篇

  • 第2章 Spring Boot核心运行原理 10

2.1 核心运行原理 ; 10

2.2 运作原理源码解析之@EnableAuto-Configuration ; 11

2.2.1 入口类和@SpringBootApplication注解 ; 11

2.2.2 注解@EnableAutoConf?iguration功能解析 ; 14

2.3 AutoConf?igurationImportSelector源码解析 ; 15

2.3.1 @Import注解 ; 16

2.3.2 ImportSelector接口 ; 16

2.3.3 AutoConf?igurationImportSelector功能概述 ; 17

2.3.4 @EnableAutoConf?iguration自动配置开关 ; 18

2.3.5 @EnableAutoConf?iguration加载元数据配置 ; 19

2.3.6 @EnableAutoConf?iguration加载自动配置组件 ; 21

2.3.7 @EnableAutoConf?iguration排除指定组件 ; 24

2.3.8 @EnableAutoConf?iguration过滤自动配置组件 ; 25

2.3.9 @EnableAutoConf?iguration事件注册 ; 32

2.4 @Conditional条件注解 ; 33

2.4.1 认识条件注解 ; 33

2.4.2 条件注解的衍生注解 ; 34

2.5 实例解析 ; 39

2.6 小结 ; 41

  • 第3章 Spring Boot构造流程源码分析 42

3.1 SpringApplication的初始化简介 ; 42

3.2 SpringApplication实例化流程 ; 43

3.3 SpringApplication构造方法参数 ; 44

3.4 Web应用类型推断 ; 45

3.5 ApplicationContextInitializer加载 ; 47

3.5.1 源码解析 ; 47

3.5.2 实例讲解 ; 49

3.6 ApplicationListener加载 ; 50

3.7 入口类推断 ; 51

3.8 SpringApplication的定制化配置 ; 52

3.8.1 基础配置 ; 52

3.8.2 配置源配置 ; 53

3.9 小结 ; 54

  • 第4章 Spring Boot运行流程源码分析 55

4.1 run方法核心流程 ; 55

4.2 SpringApplicationRunListener监听器 ; 57

4.2.1 监听器的配置与加载 ; 57

4.2.2 SpringApplicationRunListener源码解析 ; 59

4.2.3 实现类EventPublishingRun-Listener ; 60

4.2.4 自定义SpringApplicationRun-Listener ; 62

4.3 初始化ApplicationArguments ; 63

4.4 初始化Conf?igurableEnvironment ; 63

4.4.1 获取或创建环境 ; 65

4.4.2 配置环境  66

4.5 忽略信息配置  68

4.6 打印Banner  68

4.7 Spring应用上下文的创建  69

4.8 Spring应用上下文的准备  70

4.8.1 应用上下文准备阶段  71

4.8.2 应用上下文加载阶段  73

4.9 Spring应用上下文的刷新  75

4.10 调用ApplicationRunner和CommandLineRunner  77

4.11 小结  78

 

★第三部分 内置组件篇

  • 第5章 Spring Boot外化配置源码解析 80

5.1 外化配置简介  80

5.2 ApplicationArguments 参数处理  81

5.2.1 接口定义及初始化  81

5.2.2 使用实例  85

5.3 命令参数的获取  86

5.4 配置文件的加载  88

5.5 基于Prof?ile的处理实现  93

5.6 综合实战  97

5.7 小结  102

  • 第6章 Spring Boot Web应用源码解析 103

6.1 遗失的web.xml  103

6.2 Web应用的自动配置  104

6.2.1 DispatcherServlet自动配置  105

6.2.2 DispatcherServletRegistrationBean自动配置  108

6.3 Spring MVC的自动配置  111

6.3.1 ViewResolver解析  112

6.3.2 静态资源的支持  114

6.3.3 静态index.html  115

6.4 综合实战  117

6.5 小结  120

  • 第7章 Spring Boot 内置Servlet容器源码解析 121

7.1 Web容器自动配置  121

7.1.1 Servlet Web服务器概述  121

7.1.2 自动配置源码分析  122

7.2 WebServer初始化过程  128

7.3 DispatcherServlet的加载过程  134

7.3.1 DispatcherServlet的获取  134

7.3.2 DispatcherServlet的加载  138

7.4 综合实战  140

7.5 小结  141

  • 第8章 Spring Boot 数据库配置源码解析 142

8.1 自动配置注解解析  142

8.2 自动配置内部实现解析  150

8.2.1 EmbeddedDatabase-Configuration  151

8.2.2 PooledDataSource-Configuration  155

8.3 JdbcTemplateAutoConfiguration  157

8.4 异常案例分析  159

8.5 小结  159

  • 第9章 Spring Boot 消息源码解析 160

9.1 JMS基础自动配置  160

9.1.1 JmsAutoConf?iguration的注解  160

9.1.2 JmsAutoConf?iguration内部实现  164

9.2 ActiveMQ自动配置  166

9.3 @JmsListener注解解析  173

9.4 小结  175

  • 第10章 Spring Boot Cache源码解析 176

10.1 Cache简介  176

10.2 Cache自动配置  177

10.3 默认Cache配置  183

10.4 小结  188

  • 第11章 Spring Boot 日志源码解析 189

11.1 LoggingApplicationListener的触发  189

11.2 LoggingApplicationListener的执行  191

11.2.1 ApplicationStartingEvent事件处理  192

11.2.2 ApplicationEnvironment-PreparedEvent事件处理  196

11.3 小结  203

  • 第12章 实战:创建Spring Boot自动配置项目 204

12.1 自定义Spring Boot Starter项目  204

12.2 Starter测试使用  207

12.3 小结  208

 

★第四部分 外置组件篇

  • 第13章 Spring Boot单元测试 210

13.1 Spring Boot对单元测试的支持  210

13.2 常用单元测试注解  211

13.3 JUnit5单元测试示例  212

13.4 Web应用单元测试  214

13.5 MockMvc的自动配置  217

13.5.1 AutoConf?igureMockMvc注解  217

13.5.2 MockMvcAutoConf?iguration自动配置  219

13.6 小结  221

  • 第14章 Spring Boot打包部署解析 222

14.1 Spring Boot的jar包  222

14.1.1 jar包的生成  222

14.1.2 jar包的结构  227

14.2 Launcher实现原理  227

14.2.1 JarLauncher  228

14.2.2 WarLauncher  232

14.3 小结  234

  • 第15章 Spring Boot 应用监控解析 235

15.1 Actuator简介  235

15.2 Actuator自动配置  237

15.2.1 HealthEndpoint自动配置  237

15.2.2 HealthIndicator实现  240

15.3 Actuator端点展示  244

15.4 小结  247

  • 第16章 Spring Boot Security支持 248

16.1 Security自动配置  248

16.2 SecurityAutoConfiguration详解  249

16.3 SecurityFilterAutoConfiguration详解  255

16.4 小结  257

前沿

【为什么要写这本书】

经过几年的发展,Spring Boot几乎已成为Java企业级开发的标准框架,它为开发人员提供了极其方便的项目框架搭建、软件集成功能,极大地提升了开发人员的工作效率,减少了企业的运营成本。而Spring Boot又极其简单易用,一个新手按照官方文档的指导在十几分钟内就能创建一个可运行的Spring Boot项目。

Spring Boot的研发团队实现了用软件改变世界的梦想,实现了另外一种形式的创新。有句话说得非常好:“世界上90%的行业都值得重做一遍,当你把它们做到极致时,那便是创新。”Spring Boot做到了这一点,也得到了市场和用户的认可。

Spring Boot为开发人员提供了方便,但一些开发人员并不了解Spring Boot为什么可以带来方便的底层逻辑,也没有尝试借鉴Spring Boot的这种创新。这不仅会导致他们在使用Spring Boot的过程中不能深层次发挥它的优势,还会导致在大范围应用Spring Boot之后出现各种问题却找不到解决办法的情况,更别说借鉴Spring Boot的创新了。

作为软件开发人员,我们都知道设计模式很重要。为什么重要呢?因为这些设计模式是解决编程过程中一些典型问题的标准方法,已经被验证和认可。学习了这些解决方案,在遇到类似的问题时,软件开发人员便不用“重复造轮子”,直接借鉴经验即可。

当然,如果在使用Spring Boot的过程中只是简单地“用”,而不去思考其背后的实现逻辑与思想,即便用得再好,收获也是有限的—这样只能做到“手熟”,并不能拥有“匠心”。更重要的是,如果不学习Spring Boot背后那些优秀的设计理念和实现方式,我们肯定不能真正用好Spring Boot。

学习Spring Boot的设计理念和实现方式除了能够让开发人员从“手熟”的境界跨入“匠心”的境界,还能够让开发人员在其他业务场景中触类旁通地找到更加优秀的解决方案。同时,开发人员也能够了解代码和项目背后的深层逻辑,这会为以后的工作带来诸多好处。

因此,我在使用Spring Boot的过程中并未停留在“用”的层面,而是不断地研究、总结其源代码,发掘背后的优秀设计理念及实现方式。现在,我通过这本书将研究的一些方法和成果分享给大家。

技术在不断地快速迭代,但核心逻辑是永远不会变的,希望读者在阅读本书的同时,也关注分析源代码的方法和思路。“授之以鱼,不如授之以渔”,如果读者能够通过阅读本书,理解了Spring Boot背后的设计理念和实现方式,甚至寻找到更加优秀的解决方案,那将是我最大的欣慰。

 

【读者对象】

  • Spring Boot的使用者和爱好者。
  • Spring系列框架的使用者和爱好者。
  • 对源码感兴趣,希望学习源码解析相关方法的技术人员。
  • 开设Spring Boot相关课程的院校师生。

 

【本书特色】

本书有别于市面上其他Spring Boot入门和实战类的相关书,更多侧重于Spring Boot设计思想、原理及具体功能实现的源代码分析,从一个更深的层次带领读者了解Spring Boot。书中内容涵盖范围较广,却又不显冗余,每一个知识点都通过典型的功能实现来进行分析。

本书内容基于Spring Boot 2.2.1,书中涵盖的许多知识点都是我多年经验的总结,希望能给读者带来全新的知识盛宴。

 

【如何阅读本书】

由于本书的重点在于对Spring Boot源代码的分析及底层逻辑实现的讲解,因此对读者的水平有一定的要求。

首先,读者要对Spring Boot有一定的实战经验,要会用一些具体的功能,这样,配合本书的讲解才能够达到更好的学习效果。

其次,读者需要有一定的Spring使用经验。Spring Boot基于Spring框架,使用了大量Spring相关的功能及特性,由于本书重点讲解Spring Boot的实现原理,对Spring功能及特性无法大量拓展,因此需要读者有一定的Spring相关基础,这样才能更好地理解本书内容。

本书从大的方面可分为四部分,对于这四部分的阅读建议如下。

  • 第一部分为准备篇(第1章),这是阅读本书需要做的准备工作,包括源码的获取与调试、源码阅读工具的准备等,并带领读者从整体上了解源码目录结构和Spring Boot设计思想。建议大家都看一看。
  • 第二部分为原理篇(第2~4章),着重讲解Spring Boot的实现原理及基本流程,这是Spring Boot的核心内容之一,也是读者学习后面章节的基础,建议读者系统学习。
  • 第三部分为内置组件篇(第5~12章),着重讲解Spring Boot内置集成框架的实现原理及源代码分析,读者在学习了第二部分内容之后,在这里可根据需要进行独立章节的学习。
  • 第四部分为外置组件篇(第13~16章),着重讲解项目实施过程中单元测试、打包部署、监控等相关外置辅助工具的集成及源码解析,对这部分读者可根据需要进行独立章节的学习。

本书提供了源代码阅读准备章节和实战内容。读者可根据需要选择性阅读。

 

【勘误和支持】

由于本书是基于Spring Boot 2.2.1撰写,大多数内容较新,可用于参考及校对的资料较少,同时在写作过程中Spring Boot官方又进行过几次版本升级,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。

为此,我创建了一个在线支持与应急方案的二级站点(https://github.com/secbr/springboot-book)。你可以将阅读本书时发现的错误发布在Bug勘误表页面中。如果你在学习中遇到了问题,也可以访问Q&A页面,我将尽量在线上为你解答。书中的全部源文件也可以从这个网站下载,我也会及时更新相应的功能。如果你有更多宝贵意见,也欢迎发送邮件至邮箱214399230@qq.com,期待得到你们的真挚反馈。

Spring Boot技术内幕:架构设计与实现原理 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:Spring Boot技术内幕:架构设计与实现原理