Spring 5企业级开发实战
Posted 落叶飞翔的蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 5企业级开发实战相关的知识,希望对你有一定的参考价值。
新书上架
新书《Spring 5企业级开发实战》上架了,学习永远不会太晚~~~
页数:526页
出版社:清华大学出版社
购买网站:淘宝,京东
本书目录
第一篇 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在如今的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的书籍很多,但是本书是难得一见的佳作。
————中国电信号百商旅电子商务有限公司项目经理 刘俊
自从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 Boot企业应用程序开发。《弹簧靴企业级应用开发实战》
全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<入门篇>
Spring Boot企业级开发前后端分离博客系统+Thymeleaf实战+Jpa数据持久化实战+全文检索实战+架构设计与分层+API设计