Spring 5企业级开发实战

Posted 落叶飞翔的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 5企业级开发实战相关的知识,希望对你有一定的参考价值。

新书上架

新书《Spring 5企业级开发实战》上架了,学习永远不会太晚~~~   

页数:526页

出版社:清华大学出版社

购买网站:淘宝,京东

Spring 5企业级开发实战

Spring 5企业级开发实战

Spring 5企业级开发实战


Spring 5企业级开发实战

本书目录


    

第一篇  Spring基础篇

 

第1章  环境搭建    3

1.1  Spring介绍    3

1.1.1  Spring设计目标    3

1.1.2  Spring各个子模块    3

1.1.3  Spring使用场景    4

1.1.4  Spring与Spring MVC的关系    5

1.1.5  Spring 5高级特性    5

1.2  环境准备    5

1.2.1  安装JDK    5

1.2.2  安装IntelliJ IDEA    6

1.2.3  安装Apache Maven    6

1.2.4  安装Apache Tomcat    7

1.3  快速搭建Spring 5项目    8

1.3.1  使用IntelliJ IDEA创建Spring 5 + Spring MVC项目    8

1.3.2  测试部署    9

1.4  小结    9

第2章  Spring IoC容器原理    10

2.1  IoC容器揭秘    10

2.1.1  IoC的概念    10

2.1.2  依赖倒置原则    11

2.1.3  依赖注入    16

2.2  Spring IoC的实现方式    17

2.2.1  XML方式实现    17

2.2.2  通过注解方式实现    20

2.3  Spring IoC实现原理解析    21

2.3.1  BeanFactory代码解析    21

2.3.2  ApplicationContext代码解析    22

2.3.3  BeanDefinition代码解析    23

2.3.4  Spring IoC代码分析    23

2.4  Spring IoC容器中Bean的生命周期    44

2.5  小结    52

第3章  Spring AOP揭秘    53

3.1  AOP前置知识    53

3.1.1  JDK动态代理    53

3.1.2  CGLIB动态代理    56

3.1.3  AOP联盟    58

3.2  AOP概述    58

3.2.1  AOP基本概念    58

3.2.2  Spring AOP相关概念    59

3.3  Spring AOP实现    60

3.3.1  基于JDK动态代理实现    60

3.3.2  基于CGLIB动态代理实现    65

3.4  基于Spring AOP的实战    70

3.4.1  增强类型    70

3.4.2  前置增强    71

3.4.3  后置增强    73

3.4.4  环绕增强    74

3.4.5  异常抛出增强    75

3.4.6  引介增强    75

3.4.7  切入点类型    77

3.5  Spring集成AspectJ实战    78

3.5.1  使用AspectJ方式配置Spring AOP    78

3.5.2  AspectJ各种切点指示器    81

3.5.3  args()与“@args()”    81

3.5.4  @annotation()    87

3.5.5  execution    89

3.5.6  target()与“@target()”    90

3.5.7  this()    92

3.5.8  within()与“@within()”    95

3.6  Spring AOP的实现原理    98

3.6.1  设计原理    99

3.6.2  JdkDynamicAopProxy    106

3.6.3  CglibAopProxy    110

3.7  小结    115

 

第二篇  Spring 5新特性篇

 

第4章  Spring 5新特性概述    117

4.1  Spring 5.0新特性    117

4.1.1  运行环境    117

4.1.2  删除的代码    118

4.1.3  核心修改    118

4.1.4  核心容器更新    118

4.1.5  Spring Web MVC更新    118

4.1.6  Spring WebFlux    119

4.1.7  对Kotlin的支持    119

4.1.8  测试改进    120

4.2  Spring 5.1新特性    121

4.2.1  核心修改    121

4.2.2  核心容器更新    121

4.2.3  Web修改    121

4.2.4  Spring Web MVC更新    121

4.2.5  Spring WebFlux更新    122

4.2.6  Spring Messaging更新    122

4.2.7  Spring ORM更新    122

4.2.8  测试更新    122

第5章  Java 8新特性概述    123

5.1  Lambda表达式    123

5.1.1  Lambda表达式初探    123

5.1.2  Lambda表达式作用域    125

5.1.3  在线程中使用Lambda表达式    126

5.1.4  在集合中使用Lambda表达式    127

5.1.5  在Stream中使用Lambda表达式    128

5.2  接口默认方法    129

5.3  小结    132

第6章  Spring WebFlux响应式编程    133

6.1  传统的编程模型    133

6.2  响应式编程模型    134

6.3  Reactor    135

6.3.1  Flux与Mono    135

6.3.2  subscribe()    137

6.3.3  操作符(Operator)    139

6.3.4  线程模型    144

6.4  Spring WebFlux    146

6.4.1  基于注解的WebFlux开发方式    146

6.4.2  基于函数式的WebFlux开发方式    147

6.5  小结    152

第7章  WebClient响应式客户端    153

7.1  RestTemplate调试Spring MVC    153

7.2  WebClient调试Spring WebFlux    156

7.3  小结    158

第8章  Spring 5结合Kotlin编程    159

8.1  Kotlin简介    159

8.1.1  Kotlin的特性    159

8.1.2  Kotlin基本数据类型    161

8.1.3  Kotlin开发环境搭建    161

8.1.4  在Kotlin中定义常量与变量    162

8.1.5  字符串模板    162

8.1.6  NULL检查机制    163

8.1.7  For循环和区间    163

8.1.8  定义函数    166

8.1.9  类和对象    167

8.1.10  Kotlin与Java互操作    169

8.2  Spring 5集成Kotlin    170

8.3  小结    172

第9章  Spring 5更多新特性    173

9.1  Resource接口    173

9.2  HTTP 2    174

9.2.1  HTTP的现状    174

9.2.2  HTTP 2的新特性    174

9.2.3  多路复用与长连接的区别    175

9.3  JUnit 5    176

9.3.1  JUnit 5简介    176

9.3.2  JUnit 5快速体验    176

9.3.3  JUnit 5常用注解    178

9.4  小结    179

 

第三篇  Spring系统集成篇

 

第10章  Spring集成Log4j2    181

10.1  Log4j2配置详解    181

10.2  Log4j2日志级别    184

10.3  Log4j2实战演练    185

10.4  小结    188

第11章  Spring集成Spring MVC    189

11.1  Spring MVC快速体验    189

11.1.1  web.xml配置    189

11.1.2  创建Spring MVC的配置 文件    190

11.1.3  创建Spring MVC的视图 文件    190

11.1.4  创建控制器    191

11.1.5  测试运行    191

11.2  Spring MVC视图呈现    192

11.2.1  FreeMarker视图的实现    192

11.2.2  XML视图的实现    193

11.2.3  JSON视图的实现    195

11.3  Spring MVC拦截器    196

11.4  Spring MVC代码解析    198

11.5  小结    225

第12章  Spring集成MyBatis    226

12.1  Spring、Spring MVC和MyBatis集成 快速体验    226

12.2  MyBatis代码解析    236

12.3  小结    243

第13章  Spring事务管理    244

13.1  事务的特性    244

13.2  事务的隔离级别    244

13.2.1  READ_UNCOMMITTED    245

13.2.2  READ_COMMITTED    245

13.2.3  REPEATABLE_READ    246

13.2.4  SERIALIZABLE    246

13.3  JDBC方式使用事务    247

13.4  Spring事务管理快速体验    248

13.5  Spring事务隔离级别    254

13.6  Spring事务传播行为    255

13.7  Spring事务代码分析    255

13.8  小结    263

第14章  Spring集成Redis    264

14.1  Redis单节点安装    264

14.2  Redis支持的数据类型    266

14.2.1  Redis String类型的使用 方式    266

14.2.2  Redis Hash类型的使用 方式    271

14.2.3  Redis List类型的使用 方式    274

14.2.4  Redis Set类型的使用 方式    277

14.2.5  Redis SortedSet类型的使用 方式    280

14.3  Redis持久化策略    284

14.3.1  Redis RDB持久化    284

14.3.2  Redis AOF持久化    285

14.4  Redis主从复制模式    287

14.4.1  Redis一主一从拓扑结构    289

14.4.2  Redis一主多从拓扑结构    289

14.4.3  Redis树形拓扑结构    290

14.4.4  Redis主从架构的缺点    291

14.5  Redis哨兵模式    291

14.5.1  Redis哨兵模式简介    291

14.5.2  Redis哨兵定时监控任务    292

14.5.3  主观下线和客观下线    294

14.5.4  Redis哨兵选举领导者    295

14.5.5  故障转移    295

14.5.6  Redis哨兵模式安装部署    296

14.6  Redis集群模式    302

14.6.1  Redis集群模式数据共享    303

14.6.2  Redis集群中的主从复制    303

14.6.3  Redis集群中的一致性 问题    303

14.6.4  Redis集群架构    304

14.6.5  Redis集群容错    304

14.6.6  Redis集群环境搭建    305

14.7  Spring、MyBatis和Redis集成快速 体验    313

14.8  Redis缓存穿透和雪崩    323

14.8.1  Redis缓存穿透    323

14.8.2  Redis缓存雪崩    326

14.9  小结    329

第15章  Spring集成ZooKeeper    330

15.1  ZooKeeper集群安装    330

15.2  ZooKeeper总体架构    336

15.2.1  ZooKeeper选举机制    336

15.2.2  ZooKeeper数据模型    338

15.3  Spring集成ZooKeeper快速体验    342

15.4  ZooKeeper发布订阅    346

15.4.1  NodeCache    346

15.4.2  PathChildrenCache    349

15.4.3  TreeCache    352

15.5  ZooKeeper分布式锁    356

15.6  小结    361

第16章  Spring集成Kafka    362

16.1  Kafka集群安装    362

16.2  Kafka总体架构    365

16.3  Spring集成Kafka快速体验    374

16.4  小结    377

第17章  Spring集成Mycat    379

17.1  Mycat分库分表    379

17.2  Mycat分库分表实战    381

17.3  Spring+MyBatis+Mycat快速体验    386

17.4  小结    397

第18章  Spring集成Sharding-JDBC    398

18.1  Spring集成Sharding-JDBC快速 体验    398

18.2  Sharding-JDBC强制路由    407

18.3  Sharding-JDBC分布式主键    408

18.4  小结    413

第19章  Spring集成Dubbo    414

19.1  远程过程调用协议    414

19.2  Spring集成Dubbo快速体验    415

19.3  Dubbo代码分析    419

19.4  小结    452

附录A  设计模式    453

A.1  工厂模式    453

A.2  抽象工厂模式    456

A.3  单例模式    462

A.4  建造者模式    463

A.5  原型模式    468

A.6  适配器模式    472

A.7  桥接模式    476

A.8  标准模式    477

A.9  组合模式    481

A.10  装饰器模式    483

A.11  外观模式    486

A.12  享元模式    489

A.13  代理模式    491

A.14  责任链模式    493

A.15  命令模式    496

A.16  解释器模式    499

A.17  迭代器模式    502

A.18  中介者模式    504

A.19  备忘录模式    506

A.20  观察者模式    509

A.21  状态 模 式    511

A.22  空对象模式    513

A.23  策略模式    516

A.24  模板模式    519

A.25  拦截过滤器模式    522

参考文献    365

Spring 5企业级开发实战

本书特色


   Spring在如今的Java企业开发中占据十分重要的地位。一路走来,作者经历过的上百个项目无一例外都是使用Spring开发的。2017年9月Spring 5发布了通用版本(GA),标志着自 2013年12月以来第一个主要Spring Framework版本诞生。本书从企业实战角度出发,讲解最新版本的Spring 5.05.1的新特性,并将常见互联网技术与Spring集成,力争让读者通过本书能够又快又好地掌握Spring企业级开发技能,并能学以致用。

    本书涵盖Spring基础知识讲解,Spring 5新特性和Spring集成开发等知识。本书从结构上可以分三部分,第一部分是Spring基础篇,介绍Spring核心概念和原理,涉及第1章~第3章。第二部分是Spring 5高级特性篇,涉及第4章~第9章。第三部分是Spring系统集成篇,主要讲解Spring框架与互联网公司常用的技术集成开发,涉及第10章~第19章。附录部分还介绍了本书涉及的以及在面试中常见的设计模式。

本书结构

本书共19章和1个附录,各章内容概述如下:

第1章  介绍Spring开发所需的环境和工具。包括JDK的安装,Intellij IDEA安装、Tomcat安装和配置、Maven安装。

第2章  对Spring框架核心概念IoC容器进行讲解,并通过代码分析的方式阐述IoC容器的实现原理。

第3章  对Spring框架核心概念AOP进行讲解,并说明如何通过不同的方式实现AOP,最后通过代码解析的方式阐述AOP的实现原理。

第4章  概述Spring 5的新特性。

第5章  概述Java 8的一些新特性,这些特性在Spring 5中得到了支持。

第6章  讲解使用Spring 5的新特性WebFlux进行编程和Reactor编程。

第7章  讲解Spring 5提供的响应式客户端编程。

第8章  讲解Spring 5集成Kotlin进行编程。

第9章  讲解更多Spring 5的新特性及细节。

第10章  讲解Spring集成Log4j2进行日志控制。

第11章  讲解Spring如何集成Spring MVC模块进行Web开发,并分析Spring MVC底层代码实现。

第12章  讲解Spring如何集成MyBatis进行数据库持久层开发,并分析MyBatis框架底层的代码。

第13章  讲解Spring对事务的支持,并分析Spring事务管理的底层代码实现。

第14章  讲解Spring集成Redis开发,并分析Redis各种不同部署方式之间的区别,本章最后分享在高并发场景下使用Redis需要注意的一些要点。

第15章  讲解ZooKeeper如何进行开发,并分析ZooKeeper在特定场景下的一些高级用法。

第16章  讲解Spring如何集成Kafka进行开发,并分析Kafka的核心架构。

第17章  讲解Spring如何集成Mycat进行分库分表开发,及如何将Spring、Mybatis和Mycat集成进行数据库持久化层的开发。

第18章  讲解Spring如何集成Sharding-JDBC进行分库分表开发,并讲解一些Sharding-JDBC的高级特性。

第19章  讲解Spring如何集成Dubbo进行RPC服务开发,并分析Dubbo框架的底层代码。

附录A  讲解本书代码分析过程中的设计模式和企业开发过程中常见的设计模式。

Spring 5企业级开发实战

致谢


   本书能够顺利出版,首先要感谢清华大学出版社王金柱编辑给笔者一次与各位读者分享技术、交流学习的机会,感谢王金柱编辑在本书出版过程的辛勤付出。感谢好友黄文毅,也是笔者的同事,对笔者在写作思路和排版上的帮助和支持。

    感谢汉海信息技术(上海)有限公司(简称美团点评),书中很多的知识点和项目实战经验都来源于“美团点评”,感谢主管章成峰、导师吕波和贾钧翔以及同事叶雄和孙成飞,感谢“饿了么”资深架构师唐斌对笔者技术和学习上的支持,感谢行业前辈杨继龙对笔者职业生涯的提点,感谢笔者的好友黄子涵对笔者写作进度的监督和指导,感谢英语老师吴定山对笔者英语能力的培养。

Spring 5企业级开发实战

推荐语


   本书由浅入深的讲解Spring 5,作者成功地将复杂的理论以很容易被理解的方式解释出来。同时本书指导读者如何在实际工作中运用这些方法,有助于读者结合实践去阅读理解源码。虽然关于Spring 5的书籍很多,但是本书是难得一见的佳作。

————中国电信号百商旅电子商务有限公司项目经理  刘俊


    自从Rod在2003年创建Spring 5框架开始,一路借助于完整的生态体系建设和与时俱进的自我革新,Spring 5已经成为Java应用研发框架的事实标准,多年来在各个行业信息化建设中表现优异。本书完整的衔接了理论与工程实践,不单对于Spring最新相关特性做了全面阐述,同时也覆盖了Spring 5与各种主流的中间件及框架结合的最佳实践。对于一线研发人员而言,相信本书可以帮助你做出睿智的决策。

————同程艺龙智慧交通技术负责人 杨继龙


    本书很好的讲述了Spring 5在实际开发应用场景中的各种重要核心技术和最新实用技术。深入浅出的论述了每个技术的应用场景,解释深入,通俗易懂。不仅仅适合入门者系统的学习Spring 5技术,也适合有一定工作经验的人来加强和深入对Spring 5的理解。是一本质量很高的Spring 5书籍。

      ————中泰证券股份有限公司科技研发部技术经理  王祥来


    如果你想在项目中熟练使用Spring 5或者想深入了解Spring 5的工作原理,这本书就是你想要的!本书从基础出发,由浅入深、循序渐进地阐述Spring的重点(IoC/Aop),并且扩展整合了很多在实际应用场景中常用的技术,构成了一套完整的项目框架体系。是一本非常实用的Spring 5书籍。

————上海卓赞教育科技有限公司(DaDa英语)资深研发工程师  宋庭勇


    凌晨已至,脑子却还在飞速运转,距离翻开此书已不知不觉过了三个小时。书中内容由浅入深,简明扼要,如果你是第一次接触Spring 5,这本书势必成为你的启蒙老师。  

————美团高级前端研发工程    张奇雄 


    作者把自己的多年的开发经验总结付梓,从实际应用的角度出发系统地将Spring 5的核心概念、高级特性、系统集成整合到一起,引领读者轻松踏上Spring 5企业开发的旅途,易懂易学,用处很大。  

————《从Lucene到Elasticsearch全文检索实战》一书作者   姚攀



    从书的目录来看,内容丰富,由浅及深,相信这会是一本不错的Spring 5参考书。  

        ————瑞幸咖啡测试经理   陈茂川 


    这是获取Spring 5知识和经验的必备图书。本书对Spring 5进行了全面的更新,通过理论和实际应用相结合的方式对Spring的核心知识点进行深入解剖,同时也介绍了Spring 5的新特性。在阅读完这本经典的著作后,可以让读者更好的理解Spring的实现原理和底层架构,能够使用Spring 5的强大功能至上而下地构建复杂的Spring 5应用程序。感谢作者花了大量时间和精力创造了一本Spring 5领域的百科全书!

————驴妈妈旅游网资深研发工程师  邓贤文 


    周冠亚老师对技术有着异常执着的热情,多年的一线互联网大厂工作经历,也让周老师练就了一身不凡的本领。该书是周老师的得意之作,是对Spring 5相关技术钻研的个人心得和成果,也是对多年Spring 5项目实战经验的总结和分享。该书从Spring项目实战到源码分析,再到原理讲解,深入浅出地从多个角度解读Spring 5,能够帮助技术人员快速了解、掌握甚至深入Spring 5,是一本不可多得的佳作。

————云析学院创始人,Java架构师,金牌讲师 赵新 


    Spring作为为一个互联网公司的必备框架,由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的,为应用提供一站式(one-stopshop)的解决方案Spring 5的发展也日新月异.已经进化到了5.0的阶段,本书除了透彻的介绍了Spring 5标准的模块之外,把5.0的新特征很翔实的展示给了读者,实例也很精炼.此外,Spring 5和其他模块的集成的快速体验也实战化,给读者能快速的实战落地提供了良好的指导。

————网易资深开发工程师 震升


    从基础再到深入浅出,用极其简单的例子详解了Spring 5的每个知识点,更重要的是每一个知识点都有极其详细生动的例子搭配讲解,特别是Spring 5 AOP业务和系统功能分离的思想看到之后原来都可以这么简单;所以非常推荐此书给大家。

    ————前苏宁易购系统架构师 JackLiu


仅从书的目录来看,本书实战型比较强,通过具体的、常用的实战例子,引导,激发大家学习Spring 5的热情,相信这将会是一本不错的Spring 5参考书。

————导师阮龙生, 美图技术专家

Spring 5企业级开发实战

一扫


注我

以上是关于Spring 5企业级开发实战的主要内容,如果未能解决你的问题,请参考以下文章

来看看这45本Spring 5企业级开发实战的书籍!!!

Spring Boot企业应用程序开发。《弹簧靴企业级应用开发实战》

Spring3.x企业应用开发实战1.环境搭建

基于Spring Boot框架企业级应用系统开发全面实战

全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<入门篇>

Spring Boot企业级开发前后端分离博客系统+Thymeleaf实战+Jpa数据持久化实战+全文检索实战+架构设计与分层+API设计