Spring Boot编程思想(核心篇) PDF格式高清电子书免费下载

Spring Boot编程思想(核心篇)

作者 小马哥(mercyblitz)
出版社 电子工业出版社
出版日期 2019-04-01
页数 628
格式 Paper book / ebook (PDF)
ISBN 9787121360398
价格 118.0
  • 内容简介
  • 图书目录
  • 免费下载

出版信息

ISBN:9787121360398
语言:简体中文
包装/印刷类型:
开本:16开
出版时间:2019-04-01
页数:628

内容简介

本书是《Spring Boot 编程思想》的核心篇,开篇总览Spring Boot核心特性,接着讨论自动装配(Auto-Configuration)与SpringApplication。全书的讨论以Spring Boot为中心,议题发散至Spring技术栈、JSR及Java。希望透过全局的视角,帮助读者了解Spring Boot变迁的历程;经过多方的比较,帮助读者理解Spring Boot特性的原理;整合标准的规范,帮助读者掌握Spring Boot设计的哲学。 本书全名为《Spring Boot编程思想(核心篇)》,以Spring Boot 2.0为讨论的主线,讨论的范围将涵盖 Spring Boot 1.x的所有版本,以及所关联的Spring Framework版本,致力于: ? 场景分析——掌握技术选型; ? 系统学习——拒绝浅尝辄止; ? 重视规范——了解发展趋势; ? 源码解读——理解设计思想; ? 实战演练——巩固学习成果。 内容总览 由于本书的内容跨度广,所以分“核心篇”“运维篇”和“Web篇”三册分别讨论Spring Boot的功能特性。“核心篇”开篇总览Spring Boot核心特性,逐一讨论Spring Boot官网所罗列之六大特性,然而其中两点并非Spring Boot专属,故点到为止,而将讨论聚焦在其五大特性,分别为自动装配(Auto-Configuration)、SpringApplication、外部化配置、Spring Boot Actuator和嵌入式Web容器。其中,前两者是“核心篇”讨论的议题,后两者则是Spring Boot官方定义的Production-Ready特性,均偏向Spring Boot应用运维,因此纳入“运维篇”的讨论范畴。至于嵌入式Web容器,将结合传统Java EE Servlet、Spring Web MVC和Spring 5 WebFlux的有关内容放至“Web篇”探讨,具体章节安排如下。 ? 核心篇 ○ 总览Spring Boot ○ 走向自动装配 ○ 理解SpringApplication ? 运维篇 ○ 超越外部化配置 ○ 简化Spring应用运维体系 ? Web篇 ○ “渐行渐远”的Servlet ○ 从Servlet到Web MVC ○ 从Reactive到WebFlux ○ 嵌入式Web容器 目前,“核心篇”和“运维篇”已编写完毕,“Web篇”正在同步更新,其目录安排可能发生变更,请读者以最终发行版本为准。 在内容结构上,本书采用“总—分—总”的方式,首先总体介绍讨论范围,随后深入展开细节的讨论,最后予以总结。同时,为了避免先入为主的影响,本书将会针对官方文档的描述内容提出疑问或假设,大胆地猜测其可能实现的方式,再结合实现源码加以验证,随后通过示例代码巩固理解。在写作手法上,本书效仿中国历史书籍的传统编著手法,将纪传体和编年体予以综合。从功能特性来看,它属于纪传体,如自动装配、SpringApplication和外部化配置等。如此表述方式更容易系统地介绍Spring Boot和Spring Framework的核心特性。从特性的发展历程来观察,它则属于编年体,如Spring Framework注解驱动编程模型从1.x到5.0的发展与Spring Boot自动装配之间的关联,以及Spring Boot 1.0到1.4的外部化配置源是怎样利用Spring Environment抽象逐步完善的。更重要的是,在论述方式上,增加了论点、论证和论据,从而做到知其然也知其所以然。在对特性的讨论中,会穿插一些补充说明。在特性讨论的结尾处,将总结所论议题。 所谓“兼听则明,偏听则暗”,本书的讨论范围并不会局限在Spring Boot或Spring Framework,会将Spring Cloud甚至Spring Cloud Data Flow纳入参考,探讨Spring Boot在两者中的运用。站在更宏观的角度,在整个Java EE的生态中,Spring技术栈并非独此一家,也不完全是“开山之作”,不少相关的特性可在JSR规范和其他Java EE实现中找到原型。换言之,Spring技术栈可被认为是一种非常成功的“重复发明轮子”,不仅适配了JSR实现,而且“借鉴”了他山之石,逐步实现了自身的生态系统。 总而言之,全书的讨论将以Spring Boot为中心,议题发散至Spring技术栈、JSR及Java。希望读者透过全局的视角,了解变迁的历程;通过多方的比较,理解特性的原理;整合标准的规范,掌握设计的哲学。当您纵览全书之后,或许会明白为什么说“Spring Boot易学难精”。因为它的核心是Spring Framework,而对后者的理解程度又取决于对JSR规范及Java的熟悉度。 配套视频 尽管本书细致地讨论了Spring Boot和Spring Framework相关特性,不过它并非快速上手教程,如果读者具备三年以上的开发经验,或者是资深的Spring用户,那么阅读起来会相对顺畅。反之,如果读者出现阅读困难的情况,则不妨先参考官方文档,掌握基本使用技能,或者观看小马哥在慕课网的免费视频: ? Spring Boot 2.0深度实践——初遇Spring Boot(https://www.imooc.com/learn/933); ? Spring Boot 2.0深度实践之系列总览(https://www.imooc.com/learn/1058)。 其中视频“初遇Spring Boot”先介绍Spring Boot 2.0的基本特性,随后创建第一个Spring  Boot 应用,再将其改造成多Maven模块应用,这有助于对本书示例工程结构的理解。而“系列总览”则是“核心篇——总览Spring Boot”章节对应的视频。换言之,慕课网的“Spring Boot 2.0深度实践”系列属于本书的配套视频。读者可访问https://www.imooc.com/t/5387391或扫描下面的二维码参与报名。 纠错与勘误 如果读者在阅读本书或练习示例的过程中发现了错误,请将错误内容提交至 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues,小马哥将勘误内容汇总到https://mercyblitz.github.io/books/thinking-in-spring-boot/revision/,修正后的内容将在后续发行的书籍中体现。 公益资金流向 本书五成以上的稿费将捐赠给贫困地区小朋友作为教育公益基金,读者访问https://mercyblitz.github.io/books/thinking-in-spring-boot/donate/来关注和监督资金流向。

图书目录

第1部分 总览Spring Boot 第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 下一站:运维篇

点击展开

点击收起

Spring Boot编程思想(核心篇) PDF格式高清电子书免费下载

提醒:本站所有图书资源均索引自互联网,版权争议与本站无关。如有侵权或其他争议的可能性,请发起版权投诉,因本站未参与任何制作、转制、存储等任一环节,故无法对涉及到的资源进行删除,本站会依据DMCA原则, 对涉及的资源链接进行删除。因为所有图书资源均不属于本站,本站只提供索引服务,故本站不保证任何资源的准确性,权威性,请使用者自行判断。

  • 查看原页面 报告错误 复制提取码下载 提取码:ik33

看了 Spring Boot编程思想(核心篇) 的用户也看了: