[201903][Spring Boot 编程思想][核心篇][小马哥][著]

The Java Community Process(SM) Program

https://jcp.org/en/home/index

mercyblitz/thinking-in-spring-boot-samples: 小马哥书籍《Spring Boot 编程思想》示例工程

https://github.com/mercyblitz/thinking-in-spring-boot-samples

mercyblitz/jsr: Java Specification Requests

https://github.com/mercyblitz/jsr

第 1 部分 总览 Spring Boot

第 1 章 初览 Spring Boot

1.1 Spring Framework 时代

1.2 Spring Boot 简介

1.3 Spring Boot 特性

1.4 准备运行环境

1.4.1 装配 JDK8

1.4.2 装配 Maven

1.4.3 装配 IDE (集成开发环境)

第 2 章 理解独立的 Spring 应用

2.1 创建 Spring Boot 应用

2.1.1 命令行方式创建 Spring Boot 应用

2.1.2 图形化界面创建 Spring Boot 应用

2.1.3 创建 Spring Boot 应用可执行 JAR

2.2 运行 Spring Boot 应用

2.2.1 执行 Spring Boot 应用可执行 JAR

2.2.2 Spring Boot 应用可执行 JAR 资源结构

2.2.3 FAT JAR 和 WAR 执行模块 - spring-boot-loader

2.2.4 JarLauncher 的实现原理

第 3 章 理解固化的 Maven 依赖

3.1 spring-boot-starter-parent 与 spring-boot-dependencies 简介

3.2 理解 spring-boot-starter-parent 与 spring-boot-dependencies

第 4 章 理解嵌入式 Web 容器

4.1 嵌入式 Servlet Web 容器

4.1.1 Tomcat 作为嵌入式 Servlet Web 容器

4.1.2 Jetty 作为嵌入式 Servlet Web 容器

4.1.3 Undertow 作为嵌入式 Servlet Web 容器

4.2 嵌入式 Reactive Web 容器

4.2.1 UndertowServletWebServer 作为嵌入式 Reactive Web 容器

4.2.2 UndertowWebServer 作为嵌入式 Reactive Web 容器

4.2.3 WebServerInitializedEvent

4.2.4 Jetty 作为嵌入式 Reactive Web 容器

4.2.5 Tomcat 作为嵌入式 Reactive Web 容器

第 5 章 理解自动装配

5.1 理解 @SpringBootApplication 注解语义

5.2 @SpringBootApplication 属性别名

5.3 @SpringBootApplication 标注非引导类

5.4 @EnableAutoConfiguration 激活自动装配

5.5 @SpringBootApplication “继承”@Configuration CGLIB 提升特性

5.6 理解自动配置机制

5.7 创建自动配置类

第 6 章 理解 Production-Ready 特性

6.1 理解 Production-Ready 一般性定义

6.2 理解 Spring Boot Actuator

6.3 Spring Boot Actuator Endpoints

6.4 理解“外部化配置”

6.5 理解“规约大于配置”

6.6 小马哥有话说

6.6.1 Spring Boot 作为微服务中间件

6.6.2 Spring Boot 作为 Spring Cloud 基础设施

6.7 下一站:走向自动装配

第 2 部分 走向自动装配

第 7 章 走向注解驱动编程(Annotation-Driven)

7.1 注解驱动发展史

7.1.1 注解驱动启蒙时代:Spring Framework 1.x

7.1.2 注解驱动过渡时代:Spring Framework 2.x

7.1.3 注解驱动黄金时代:Spring Framework 3.x

7.1.4 注解驱动完善时代:Spring Framework 4.x

7.1.5 注解驱动当下时代:Spring Framework 5.x

7.2 Spring 核心注解场景分类

7.3 Spring 注解编程模型

7.3.1 元注解(Meta-Annotations)

7.3.2 Spring 模式注解(Stereotype Annotations)

7.3.3 Spring 组合注解(Composed Annotations)

7.3.4 Spring 注解属性别名和覆盖(Attribute Aliases and Overrides)

第 8 章 Spring 注解驱动设计模式

8.1 Spring @Enable 模块驱动

8.1.1 理解 @Enable 模块驱动

8.1.2 自定义 @Enable 模块驱动

8.1.3 @Enable 模块驱动原理

8.2 Spring Web 自动装配

8.2.1 理解 Web 自动装配

8.2.2 自定义 Web 自动装配

8.2.3 Web 自动装配原理

8.3 Spring 条件装配

8.3.1 理解配置条件装配

8.3.2 自定义配置条件装配

8.3.3 配置条件装配原理

第 9 章 Spring Boot 自动装配

9.1 理解 Spring Boot 自动装配

9.1.1 理解 @EnableAutoConfiguration

9.1.2 优雅地替换自动装配

9.1.3 失效自动装配

9.2 Spring Boot 自动装配原理

9.2.1 @EnableAutoConfiguration 读取候选装配组件

9.2.2 @EnableAutoConfiguration 排除自动装配组件

9.2.3 @EnableAutoConfiguration 过滤自动装配组件

9.2.4 @EnableAutoConfiguration 自动装配事件

9.2.5 @EnableAutoConfiguration 自动装配生命周期

9.2.7 @EnableAutoConfiguration 自动装配 BasePackages

9.3 自定义 Spring Boot 自动装配

9.3.1 自动装配 Class 命名的潜规则

9.3.2 自动装配 package 命名的潜规则

9.3.3 自定义 Spring Boot Starter

9.4 Spring Boot 条件化自动装配

9.4.1 Class 条件注解

9.4.2 Bean 条件注解

9.4.3 属性条件注解

9.4.4 Resource 条件注解

9.4.5 Web 应用条件注解

9.4.6 Spring 表达式条件注解

9.5 小马哥有话说

9.6 下一站:理解 SpringApplication

第 3 部分 理解 SpringApplication

第 10 章 SpringApplication 初始化阶段

10.1 SpringApplication 构造阶段

10.1.1 理解 SpringApplication 主配置类

10.1.2 SpringApplication 的构造过程

10.1.3 推断 Web 应用类型

10.1.4 加载 Spring 应用上下文初始化器(ApplicationContextInitializer)

10.1.5 加载 Spring 应用事件监听器(ApplicationListener)

10.1.6 推断应用引导类

10.2 SpringApplication 配置阶段

10.2.1 自定义 SpringApplication

10.2.2 调整 SpringApplication 设置

10.2.3 增加 SpringApplication 配置源

10.2.4 调整 Spring Boot 外部化配置

第 11 章 SpringApplication 运行阶段

11.1 SpringApplication 准备阶段

11.1.1 理解 SpringApplicationRunListeners

11.1.2 理解 SpringApplicationRunListener

11.1.3 理解 Spring Boot 事件

11.1.4 理解 Spring 事件/监听机制

1. Spring 事件发布
1) ApplicationEventMulticaster 注册 ApplicationListener
2) ApplicationEventMulticaster 广播事件
3) ApplicationEventMulticaster 与 ApplicationContext 之间的关系
2. Spring 内建事件
1) Spring 应用上下文就绪事件 - ContextRefreshedEvent
2) Spring 应用上下文启停事件 - ContextStartedEvent 和 ContextStoppedEvent
3) Spring 应用上下文关闭事件 - ContextClosedEvent
4) Spring 应用上下文事件 - ApplicationContextEvent
3. 自定义 Spring 事件
4. Spring 事件监听
1) ApplicationListener 监听 Spring 内建事件
2) ApplicationListener 监听自定义 Spring 泛型事件
3) ApplicationListener 监听实现原理
4) 注解驱动 Spring 事件监听 - @EventListener
5) @EventListener 方法监听多 ApplicationEvent
6) @EventListener 异步方法
7) @EventListener 方法执行顺序
8) @EventListener 方法监听泛型 ApplicationEvent
9) @EventListener 方法对比 ApplicationListener 接口
10) @EventListener 方法实现原理
11) SmartInitializingSingleton 生命周期回调
12) EventListenerMethodProcessor 的实现原理
5. 总结 Spring 事件/监听机制
1) 总结 Spring 事件
2) 总结 Spring 事件监听手段
3) 总结 Spring 事件广播器

11.1.5 理解 Spring Boot 事件/监听机制

1. 早期 Spring Boot 事件/监听机制
1) SmartApplicationListener 监听多 Spring Boot 事件
2) @EventListener 方法监听多 Spring Boot 事件
2. 当前 Spring Boot 事件/监听机制
3. Spring Boot 内建事件监听器
4. 总结 Spring Boot 事件/监听机制
1) 总结 Spring Boot 事件
2) Spring Boot 事件监听手段
3) Spring Boot 事件广播器

11.1.6 装配 ApplicationArguments

11.1.7 准备 ConfigurableEnvironment

11.1.8 创建 Spring 应用上下文(ConfigurableApplicationContext)

1. 根据 WebApplicationType 创建 Spring 应用上下文
2. 根据指定 ConfigurableApplicationContext 类型创建 Spring 应用上下文

11.1.9 Spring 应用上下文运行前准备

1. Spring 应用上下文准备阶段
1) 设置 Spring 应用上下文 ConfigurableEnvironment
2) Spring 应用上下文后置处理
3) Spring 应用上下文初始化器(ApplicationContextInitializer)
4) 执行 SpringApplicationRunListener#contextPrepared 方法回调
2. Spring 应用上下文装载阶段
1) 注册 Spring Boot Bean
2) 合并 Spring 应用上下文配置源
3) 加载 Spring 应用上下文配置源
4) 执行 SpringApplicationRunListener#contextLoaded 方法回调

11.2 Spring 应用上下文启动阶段

11.3 Spring 应用上下文启动后阶段

11.3.1 afterRefresh 方法签名的变化

11.3.2 afterRefresh 方法语义的变化

11.3.3 Spring Boot 事件 ApplicationStartedEvent 语义的变化

11.3.4 执行 CommandLineRunner 和 ApplicationRunner

第 12 章 SpringApplication 结束阶段

12.1 SpringApplication 正常结束

12.2 SpringApplication 异常结束

12.2.1 Spring Boot 异常处理

12.2.2 错误分析报告器 - FailureAnalysisReporter

12.2.3 自定义实现 FailureAnalyzer 和 FailureAnalysisReporter

12.2.4 Spring Boot 2.0 重构 handleRunFailure 和 reportFailure 方法

12.2.5 Spring Boot 2.0 的 SpringBootExceptionReporter 接口

第 13 章 Spring Boot 应用退出

13.1 Spring Boot 应用正常退出

13.1.1 ExitCodeGenerator Bean 生成退出码

13.1.2 ExitCodeGenerator Bean 退出码使用场景

13.2 Spring Boot 应用异常退出

13.2.1 ExitCodeGenerator 异常使用场景

13.2.2 ExitCodeExceptionMapper Bean 映射异常与退出码

13.2.3 退出码用于 SpringApplication 异常结束

13.3 小马哥有话说

13.4 下一站:运维篇

[201903][Spring Boot 编程思想][核心篇][小马哥][著]相关推荐

  1. spring boot实战(第六篇)加载application资源文件源码分析

    前言 在上一篇中了解了spring配置资源的加载过程,本篇在此基础上学习spring boot如何默认加载application.xml等文件信息的. ConfigFileApplicationLis ...

  2. 微服务架构具体实现工具框架:Spring Boot概览与核心原理

    目录 一.Spring Boot概述 1.回顾使用Spring开发WEB应用程序过程 2.新一代开发框架的诞生Spring Boot 编码方面 配置方面 部署方面 监控方面 3.SpringBoot核 ...

  3. MyBatis-Plus,搭配 Spring Boot 使用,一篇就够了

    以下文章来源方志朋的博客,回复"666"获面试宝典 MyBatis-plus 是一款 Mybatis 增强工具,用于简化开发,提高效率.下文使用缩写 mp来简化表示 MyBatis ...

  4. Spring Boot 入门之基础篇(一)

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭 ...

  5. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  6. spring boot实战(第十篇)Spring boot Bean加载源码分析

    前言 前面的文章描述了Application对应Bean的创建,本篇将阐述spring boot中bean的创建过程 refresh 首先来看SpringApplication#run方法中refre ...

  7. 【spring boot】第3篇:spring boot 进行 web 开发

    spring boot 对 web 静态资源的管理 经过前两篇文章我们知道spring boot最大的功能就是自动配置.主要是通过以下两个类实现该功能: xxxxAutoConfiguration : ...

  8. spring boot实战(第七篇)内嵌容器tomcat配置

    spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / 通过需要用到的就是端口.上下文路径的修改,在spring boot中其修改 ...

  9. spring boot实战(第四篇)分散配置

    前言 分散配置是系统必不可少的一部分,将配置参数抽离出来为后期维护提供很大的便利.spring boot 默认支持两个格式的配置文件:.properties .yml. .properties与.ym ...

最新文章

  1. 理解RESTful架构
  2. mxnet加载预训练
  3. live的domain服务
  4. idea插件GsonFormat的使用
  5. 设计模式---设计模式的分类及六大原则
  6. 在线应用的 Serverless 实践
  7. Maven-学习笔记04【基础-Maven生命周期和概念模型图】
  8. LeetCode 1620. 网络信号最好的坐标
  9. protocol buffer 对socket协议封装成二进制传输
  10. 筑龙网下载的文件格式是php_为什么使用迅雷下载的文件都是PHP格式的
  11. C/C++-获取成员变量的指针
  12. JDBC操作数据库的基本步骤:
  13. 凸优化第六章逼近与拟合 6.1 范数逼近
  14. 8、Linux下文件服务器搭建及原理讲解
  15. 如何修改CSDN的ID号
  16. RT-Thread在正点原子Apollo上为 QSPI FLASH W25Q256移植FATFS文件系统
  17. 文件上传到ftp服务器命令,ftp上传文件到服务器命令
  18. java的Swing框架简介
  19. git pull 与 git push 的区别
  20. 【自监督学习】主题论文推荐

热门文章

  1. maya水管转折_maya问题,怎么在曲线出添加管道?
  2. pytest 前置后置用法之 Fixture、setup、teardown
  3. 论文阅读:Natural Language Processing Advancements By Deep Learning: A Survey 深度学习在自然语言处理中的进展
  4. WebService调用天气接口及手机号查询归属地接口
  5. 如何减少CPU上下文切换
  6. java锁结构之自旋锁与适应性自旋锁
  7. Install and configure iftop
  8. 西瓜书课后题8.5(bagging)
  9. 矩阵的Frobenius范数及其经典例题求导
  10. Incremental Learning vs Online Learning