编辑推荐

  阿里与平安集团技术高层倾心倾情推荐,互联网与互联网金融行业各大技术掌门一致好评。

  理论与实践相结合、框架与生态相结合、技术与产品相结合,多视角、多维度、多场景地为大家深刻揭示了SpringBoot微服务框架和微服务架构体系的奥秘

内容简介

  《SpringBoot揭秘:快速构建微服务体系》以微服务的基本概念介绍性开篇,逐步引出Java平台下打造微服务的利器SpringBoot微框架,从SpringBoot微框架的出身和源头,循序渐进,一步步为大家剖析了SpringBoot微框架的设计理念和原理,并对框架的重点功能和模块进行了逐一讲解。

  “框架,体系,生态”,三者循序渐进,相辅相成,《SpringBoot揭秘:快速构建微服务体系》*精彩的部分在于,在大家对SpringBoot微框架已经有了基本的认识之后,我们将一起探索如何基于SpringBoot微框架打造一套完备的微服务体系。

  SpringBoot微框架依托Java平台和Spring框架,拥有良好的可扩展性和可定制性,为了说明这一点,我们单独开辟了一章内容,为大家介绍如何使用Scala和SpringBoot微框架来开发和交付相应的微服务,并且围绕着Scala和SpringBoot如何打造相应的工具,技术产品等支持来提高相应微服务的交付效率。

作者简介

  王福强,资深Java技术专家和架构师,具有多年一线开发经验和技术团队管理经验。在计算机语言、并发与并行编程、分布式系统设计与开发、大数据、实时计算等领域都积累了丰富的经验。先后在英极、花旗、阿里巴巴等金融和互联网企业任职,主导和参与了多个重要的大型项目。现任挖财技术VP兼首席架构师。

目录

推荐序1
推荐序2
序言
前言
第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 SpringIoC其实很简单12
2.3 了解一点儿JavaConfig14
2.3.1 那些高曝光率的Annotation17
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 可有可无的@ComponentScan25
3.3 SpringApplication:SpringBoot程序启动的一站式解决方案26
3.3.1 深入探索SpringApplication执行流程27
3.3.2 SpringApplicationRunListener30
3.3.3 ApplicationListener31
3.3.4 ApplicationContextInitializer32
3.3.5 CommandLineRunner33
3.4 再谈自动配置34
3.4.1 基于条件的自动配置34
3.4.2 调整自动配置的顺序35
3.5 本章小结35
第4章 了解纷杂的spring-boot-starter37
4.1 应用日志和spring-boot-starter-logging39
4.2 快速Web应用开发与spring-boot-starter-web40
4.2.1 项目结构层面的约定41
4.2.2 SpringMVC框架层面的约定和定制41
4.2.3 嵌入式Web容器层面的约定和定制42
4.3 数据访问与spring-boot-starter-jdbc43
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-security58
4.5.1 了解SpringSecurity基本设计61
4.5.2 进一步定制spring-boot-starter-security66
4.6 应用监控与spring-boot-starter-actuator68
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快速构建WebAPI91
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与Scala139
6.1 使用Maven构建和发布基于SpringBoot的Scala应用140
6.1.1 进一步简化基于Maven的Scala项目创建146
6.1.2 进一步简化基于Scala的WebAPI开发167
6.2 使用SBT构建和发布基于SpringBoot的Scala应用174
6.2.1 探索基于SBT的SpringBoot应用开发模式175
6.2.2 探索基于SBT的SpringBoot应用发布策略181
6.3 本章小结184
第7章 SpringBoot总结与展

前言/序言

  前  言 Preface

  为什么写这《SpringBoot揭秘:快速构建微服务体系》忘了是2015年的哪一天,只记得几个朋友跟友商的其他几个做技术的朋友吃饭,并简单做下技术交流。席间,友商的几位朋友对SpringBoot框架实施微服务很感兴趣,交谈甚欢之际,我无意间开玩笑说:“是不是该考虑写一本SpringBoot的书?”钟伦甫(原淘宝聚石)同学随口一句,“你倒是写啊!”,得,以行践言吧,谁让你把话说出去了呢?当然,朋友的“热切期盼”只是其一,微服务盛行也是《SpringBoot揭秘:快速构建微服务体系》写作的一个契机,希望《SpringBoot揭秘:快速构建微服务体系》成为国内第一本微服务相关的原创图书,借此跟大家分享我对微服务的浅薄理解,并围绕SpringBoot微框架打造一套微服务体系可能的探索方向,权作抛砖引玉。如果不同的思想可以借此激荡和碰撞形成更多共鸣,则吾之幸甚。

  因工作繁忙,只能抽取零碎时间躬耕于晨曦和月光之下,经点滴积累,才终成此书,希望大家阅读愉快。

  《SpringBoot揭秘:快速构建微服务体系》的主要内容和特色《SpringBoot揭秘:快速构建微服务体系》以介绍微服务的基本概念开篇,逐步引出Java平台下打造微服务的利器—SpringBoot微框架。书中从SpringBoot微框架的“出身”开始,循序渐进,一步步为大家剖析SpringBoot微框架的设计理念和原理,并对框架的重点功能和模块进行了逐一讲解。

  当然,这还只是“前戏”,《SpringBoot揭秘:快速构建微服务体系》最精彩的部分在于,在大家对SpringBoot微框架已经有了基本的认识之后,我们将一起探索如何基于SpringBoot微框架打造一套完备的微服务体系。因为如果没有平台化体系化的基础支撑,空谈微服务将无太大意义。

  SpringBoot微框架依托Java平台和Spring框架,拥有良好的可扩展性和可定制性,为了说明这一点,我们单独开辟了一章内容,为大家介绍如何使用Scala和SpringBoot微框架来开发和交付相应的微服务,并且围绕Scala和SpringBoot如何打造相应的工具,技术产品等支持来提高相应微服务的交付效率。

  最后我会与大家一起对SpringBoot微框架的相关内容进行回顾和展望,以期温故而知新。

  《SpringBoot揭秘:快速构建微服务体系》总体上可以总结为三个关键词,“框架、体系、生态”,三者循序渐进,相辅相成,在使用SpringBoot微框架打造自己特色的微服务体系和技术生态之时,希望大家记住这三个关键词。

  《SpringBoot揭秘:快速构建微服务体系》面向的读者《SpringBoot揭秘:快速构建微服务体系》希望面向的读者当然是那些对SpringBoot微框架感兴趣的同学,如果你想了解SpringBoot微框架,并且尝试进一步深入定制该框架以满足自己团队和公司的需要,也希望会对你有所启发。

  除此之外还包括:

  Java平台上的广大研发同学,可以借此书了解业界微服务相关的最新动态。

  其他平台上的广大研发同学,可借此书“管中窥豹”,了解微服务的一般体系和生态建设,对比并引入自身的技术和微服务体系建设之中。

  脱离技术一线已久的技术负责人。

  如何阅读《SpringBoot揭秘:快速构建微服务体系》《SpringBoot揭秘:快速构建微服务体系》采用循序渐进的形式编写,所以顺序阅读是推荐的阅读方式。

  勘误和资源鉴于一家之言且编撰仓促,难免会有所纰漏,观点有失偏颇,所以,我在github网站上专门新建了一个issue项目(https://github.com/fujohnwang/unveil-springboot-feedbacks),如果大家在阅读此书之后发现有哪些错误和疑问,或者改进建议,可以在此项目上新建issue来表达自己的观点和建议。如果时间不充裕,我会适时地选择性给予答复,当然,更希望大家可以通过issue展开讨论,互相切磋和解答疑问。

  致谢除了最初的一句戏言,钟伦甫同学也是《SpringBoot揭秘:快速构建微服务体系》的第一位读者,帮助审稿并提出很多建议,所以,《SpringBoot揭秘:快速构建微服务体系》得以出版,第一需要感谢的就是钟伦甫同学。

  其次,我要感谢华章出版社的杨福川和李艺,福川兄在接到我的出版意向之后,快速地跟进和落实,在《SpringBoot揭秘:快速构建微服务体系》初稿编写完成时马上着手出版,诸位得以在2016年上半年就手捧此书,皆需感谢福川兄的重点关注和推进。

  最后要感谢我的父母,感谢他们把我带到这个世界上并让我做自己想做和要做的事情。

  推荐序1

  2015年技术圈最火的名词大概就是微服务了。国内外的互联网技术会议上,但凡分享题目中包含“MicroService”,不论内容质量如何,一定人山人海、摩肩接踵。

  追本溯源,服务化的架构思想十年前就是软件架构的标准范式。淘宝和阿里在2007年左右就开始奠定了大规模服务化架构的基础,经过几代架构师的努力,有了今天承载双十一规模的商业操作系统。这中间诞生的很多优秀的Java中间件也成为开源界备受追崇的范例。

  但是对于很多中小企业而言,SpringBoot会是另一个性价比极高的选择。福强的这《SpringBoot揭秘:快速构建微服务体系》出现得恰逢其时,既有体系化的理论又不乏有价值的实践。对于想了解微服务和SpringBoot的架构师而言,是难得的修炼秘籍。

  南天(本名是庄卓然) 阿里巴巴资深总监

  推荐序2

  多年前,第一次见福强,就知道他在写书,那时就是关于Spring的书籍。等到出书后,我翻看之下,发现福强写得非常实用。

  时隔若干年,福强又来信告知有新作问世,这是他经历几年的大型网站实践之后,在创业阶段写的书。在这个阶段还能坚持写作的人非常少,足以说明他对技术的执着和坚持。有了成熟大型网站和创业阶段的实践经验,《SpringBoot揭秘:快速构建微服务体系》不仅是SpringBoot的指南,还是各种实战经验的提炼和总结。福强不仅在Java,在Scala、Golang方面都有颇深的理解,这种跨语言方面对技术的融会贯通也为整个构建过程起着催化剂的作用。福强这次给大家带来的这《SpringBoot揭秘:快速构建微服务体系》,从不同角度对微服务这一热门话题进行了介绍和探讨,同时加入了自己多年的实践经验,值得一读。

  Eric(中文名是王齐) 平安好医生CTO



其他推荐