第1章 了解微服务 1
1.1 什么是微服务 1
1.2 微服务因何而生 2
1.3 微服务会带来哪些好处 4
1.3.1 独立,独立,还是独立 4
1.3.2 多语言生态 6
1.4 微服务会带来哪些挑战 8
1.5 本章小结 9
第2章 饮水思源:回顾与探索Spring框架的本质 11
2.1 Spring框架的起源 11
2.2 Spring IoC其实很简单 12
2.3 了解一点儿JavaConfig 14
2.3.1 那些高曝光率的Annotation 17
2.4 本章小结 18
第3章 SpringBoot的工作机制 19
3.1 SpringBoot初体验 19
3.2 @SpringBootApplication背后的秘密 20
3.2.1 @Configuration创世纪 21
3.2.2 @EnableAutoConfiguration的功效 22
3.2.3 可有可无的@ComponentScan 25
3.3 SpringApplication:SpringBoot程序启动的一站式解决方案 26
3.3.1 深入探索SpringApplication执行流程 27
3.3.2 SpringApplicationRunListener 30
3.3.3 ApplicationListener 31
3.3.4 ApplicationContextInitializer 32
3.3.5 CommandLineRunner 33
3.4 再谈自动配置 34
3.4.1 基于条件的自动配置 34
3.4.2 调整自动配置的顺序 35
3.5 本章小结 35
第4章 了解纷杂的spring-boot-starter 37
4.1 应用日志和spring-boot-starter-logging 39
4.2 快速Web应用开发与spring-boot-starter-web 40
4.2.1 项目结构层面的约定 41
4.2.2 SpringMVC框架层面的约定和定制 41
4.2.3 嵌入式Web容器层面的约定和定制 42
4.3 数据访问与spring-boot-starter-jdbc 43
4.3.1 SpringBoot应用的数据库版本化管理 46
4.4 spring-boot-starter-aop及其使用场景说明 48
4.4.1 spring-boot-starter-aop在构建spring-boot-starter-metrics自定义模块中的应用 49
4.5 应用安全与spring-boot-starter-security 58
4.5.1 了解SpringSecurity基本设计 61
4.5.2 进一步定制spring-boot-starter-security 66
4.6 应用监控与spring-boot-starter-actuator 68
4.6.1 自定义应用的健康状态检查 70
4.6.2 开放的endpoints才真正“有用” 73
4.6.3 用还是不用,这是个问题 75
4.7 本章小结 77
第5章 SpringBoot微服务实践探索 79
5.1 使用SpringBoot构建微服务 79
5.1.1 创建基于Dubbo框架的SpringBoot微服务 80
5.1.2 使用SpringBoot快速构建Web API 91
5.1.3 使用SpringBoot构建其他形式的微服务 104
5.2 SpringBoot微服务的发布与部署 110
5.2.1 spring-boot-starter的发布与部署方式 112
5.2.2 基于RPM的发布与部署方式 115
5.2.3 基于Docker的发布与部署方式 120
5.3 SpringBoot微服务的注册与发现 124
5.4 SpringBoot微服务的监控与运维 127
5.4.1 推还是拉,这一直是个问题 131
5.4.2 从局部性触发式报警到系统性智能化报警 132
5.5 SpringBoot微服务的安全与防护 133
5.6 SpringBoot微服务体系的脊梁:发布与部署平台 135
5.7 本章小结 138
第6章 SpringBoot与Scala 139
6.1 使用Maven构建和发布基于SpringBoot的Scala应用 140
6.1.1 进一步简化基于Maven的Scala项目创建 146
6.1.2 进一步简化基于Scala的Web API开发 167
6.2 使用SBT构建和发布基于SpringBoot的Scala应用 174
6.2.1 探索基于SBT的SpringBoot应用开发模式 175
6.2.2 探索基于SBT的SpringBoot应用发布策略 181
6.3 本章小结 184
第7章 SpringBoot总结与展望 186