疯狂Spring Boot终极讲义
  • 推荐0
  • 收藏0
  • 浏览1.9K

疯狂Spring Boot终极讲义

李刚 (作者) 

  • 书  号:978-7-121-41371-1
  • 出版日期:2021-06-28
  • 页  数:712
  • 开  本:16(185*260)
  • 出版状态:上市销售
  • 维护人:张月萍
纸质版 ¥168.00
《疯狂Spring Boot终极讲义》不是一本介绍类似于@PathVariable、@MatrixVariable、@RequestBody、@ResponseBody这些基础注解的图书,它是真正讲解Spring Boot的图书。
Spring Boot的核心是什么?它的核心就是自动配置,以及以自动配置为基础与大量第三方后端技术进行整合。因此学习Spring Boot应该重点关注的就是它为整合各种框架所提供的自动配置,包括Spring Boot如何整合各种前端框架,如Spring MVC、Spring WebFlux;Spring Boot如何整合各种持久层技术,如Spring Data、MyBatis、Hibernate/JPA、R2DBC、jOOQ等;Spring Boot如何整合NoSQL技术,如Redis、MongoDB、Neo4j、Cassandra、Solr、Elasticsearch等;Spring Boot如何整合各种消息组件,如ActiveMQ、Artemis、RabbitMQ、Kafka等;Spring Boot如何整合各种缓存机制,如JCache、EhCache、Redis、Hazelcast等;Spring Boot如何整合各种安全框架,如Spring Security、Shiro等,这些都只是Spring Boot整合的典型内容。
本书的作用就是带你彻底掌握Spring Boot官方手册中所整合的各种技术,而且本书会讲清楚Spring Boot和Spring框架的关系,带着你揭开Spring Boot的核心:自动配置的面纱,领着你剖析Spring Boot自动配置的源代码实现,然后以此为基础,详细讲解Spring Boot如何整合各种Java后端技术。在掌握了本书知识之后,你不仅能轻松看懂Spring Boot官方手册(其实无须再看了),而且真正掌握了Spring Boot的大成,并通过Spring Boot的整合触类旁通地掌握各种Java后端技术。
本书提供了读者答疑交流群,读者可通过扫描本书封面上的二维码,按照指引加入读者答疑交流群。
疯狂Java李刚带领你剖析Spring Boot自动配置的源代码实现,详细讲解Spring Boot如何整合各种Java后端技术
Spring Boot是很简单的:基本上只要原本就真正掌握了SSM(Spring + Spring MVC + MyBatis)或SSH(Struts + Spring + Hibernate)开发,然后再花上半天或一天的时间就能顺利过渡到使用Spring Boot开发。
Spring Boot是很难的:如果想真正掌握Spring Boot,或者曾经看过Spring Boot官方手册,你就会发现Spring Boot完全是Java后端开发集大成的框架,它几乎无所不能。
? 在MVC框架方面,它为整合Spring MVC、Spring WebFlux提供了自动配置。
? 在持久层方面,它为整合Spring Data、JPA/Hibernate、MyBatis、R2DBC、jOOQ等各种主流持久层框架提供了自动配置。
? 在NoSQL方面,它为整合Redis、MongoDB、Neo4j、Cassandra、Couchbase等NoSQL数据库提供了自动配置。
? 在全文检索方面,它为整合Solr、Elasticsearch提供了自动配置。
? 在消息机制方面,它为整合ActiveMQ、Artemis、RabbitMQ、Kafka提供了自动配置。
? 在缓存方面,它为整合JCache、EhCache、Redis、Hazelcast等各种主流缓存框架提供了自动配置。
? 在安全机制方面,它为整合Spring Security、OAuth 2、SAML 2.0等各种主流安全机制提供了自动配置。
? 在应用部署方面,它既为部署到Cloud Foundry、K8s、OpenShift、AWS、Google Cloud等各种云平台提供了支持,也为部署到容器提供了支持。
此外,Spring Boot也是构建微服务架构、分布式应用的基础。换言之,Spring Boot是一个上手极易但学会极难的框架。
因此只要顺着Spring Boot所整合的各种技术进行学习,一旦真正掌握了Spring Boot所能整合的各种技术,基本上也就掌握了Java后端开发的绝大部分技术。
遗憾的是,大多数人学习或使用Spring Boot,根本就只涉及了它的皮毛,造成这种现象很重要的一个原因是,大部分网络资料或市面上的图书名义上是讲解Spring Boot,其实是在讲Spring或Spring MVC,只要你看到资料(或图书)以Spring Boot的名义在讲解@Component、@Controller、@PathVariable、@MatrixVariable、@RequestBody、@ResponseBody等注解,基本就可以断定它并不是真正在介绍Spring Boot—因为这些内容完全不属于Spring Boot。
本书是一本带你真正掌握Spring Boot的图书,书中内容会紧扣Spring Boot核心:自动配置,深入挖掘自动配置的本质,不仅透彻地剖析了Spring Boot自动配置的源代码实现,而且会手把手教你如何实现自己的自动配置、Starter组件。
本书对Spring Boot官方手册的知识结构进行了重新组织,极大丰富了内容,尽量保证有一定Java基础的读者都能看懂。
举例来说,Spring Boot官方手册在介绍Kafka整合时,假设的前提是学习者是有经验的Kafka开发者,不仅熟悉Kafka的配置和各种API,而且熟悉如何在Java应用中使用Kafka API。这个假设前提的要求未免太高了,而大部分读者可能并没有好的基础,所以绝大多数技术学习者打开Spring Boot官方手册往往一脸懵,只能转投那些粗制滥造的“Spring Boot”学习资料。
但本书只假设读者有较好的Java基础,熟悉常见的SSH、SSM技术栈,剩下的事情就交给本书吧。还是以Kafka为例,本书会从ZooKeeper、Kafka的安装和配置讲起,并详细介绍Kafka的实现机制和用法,从目录就能看到,本书会包括Kafka的如下知识:
? 安装Kafka及CMAK。
? 使用CMAK。
? 主题与分区。
? 消息生产者。
? 消费者与消费者组。
? 使用Kafka核心API。
? 使用Kafka流API。
此处仅仅以Kafka为例进行说明,实际上本书对Spring Boot所整合的绝大部分技术都进行了详细的讲解:
? 在MVC框架方面,本书详细介绍了Spring Boot为整合Spring MVC、Spring WebFlux提供的自动配置与扩展配置。
? 在持久层方面,本书详细介绍了Spring Boot为整合Spring Data、JPA/Hibernate、Spring JDBC、MyBatis所提供的自动配置与扩展配置,还包括如何放弃自动配置来开发多数据源的应用,以及使用JTA实现分布式事务等实际项目时要用到的高级知识点。
? 在持久层方面,本书详细讲解了R2DBC、jOOQ这些主流持久化技术的用法,并详细介绍了Spring Boot为整合R2DBC、jOOQ技术所提供的自动配置与扩展配置。
? 在NoSQL方面,本书详细讲解了Redis、MongoDB、Neo4j、Cassandra等NoSQL数据库的用法,并详细介绍了Spring Boot为整合Redis、MongoDB、Neo4j、Cassandra所提供的自动配置与扩展配置。
? 在全文检索方面,本书详细讲解了Solr和Elasticsearch这两个搜索引擎的用法,并详细介绍了Spring Boot为整合Solr、Elasticsearch所提供的自动配置与扩展配置。
? 在消息机制方面,本书详细讲解了ActiveMQ、Artemis、RabbitMQ、Kafka这四个消息组件的用法,并详细介绍了Spring Boot为整合ActiveMQ、Artemis、RabbitMQ、Kafka所提供的自动配置与扩展配置。
本书不是一本从“简单”出发的图书,而是致力于传授Spring Boot的精髓:Spring Boot不应该是一个孤立的框架,它的主要作用就是提供自动配置、Starter与其他Java框架进行整合,因此只要真正掌握了Spring Boot所整合的技术栈,也就几乎完整地掌握了Java后端开发的全部技术栈—这才是本书的目的。
在真正搞懂这本书之前,别轻易说自己掌握了Spring Boot,翻看一下本书的目录,你可能会发现对于Spring Boot,你所掌握的可能只是本书第1章的内容。
多年来,我写作的目的始终如一:如果我写的书不能比市面上其他同类技术的书更好,那就完全没必要写这本书。
同样,本书不是那种满足于泛泛而谈的Spring Boot图书,它并不是简单地满足于教你依葫芦画瓢使用Spring Boot进行开发,而是真正带你走进Spring Boot的本质,让你完全可以自己开发Spring Boot自动配置和Starter,并通过学习Spring Boot所整合的技术栈,进而掌握Java后端开发的完整技术栈。
想了好久,还是决定给书名加上“终极讲义”这四个字,这样可以“警示”那些只想简单涉猎Spring Boot的读者避开本书:本书是Java后端开发的“终极讲义”,因此它涵盖的内容不可能很简单。
对于希望真正掌握Java后端开发的学习者来说,他们可能会通过Spring Boot官方手册来发现本书尚未涵盖的内容:Spring Boot不是还可以整合缓存框架、安全机制、Spring Session、Spring Integration等技术吗?还有Spring Boot应用的部署呢?还有Spring Boot应用的监控呢?这些内容确实不在本书中,它们将会被放在后续出版的本书高级篇中。

本书有什么特点
总之,此书一出更无书。
本书以Spring Boot官方手册为基础,结合Spring Boot源代码进行剖析,重新梳理了Spring Boot的知识脉络,对Spring Boot官方手册进行了极大的丰富,因此掌握本书知识之后,已没必要再去看Spring Boot官方手册,更没必要去看其他Spring Boot图书或资料了。
总结起来,本书具有以下三个典型特点。
1. 真正讲解Spring Boot
本书紧扣Spring Boot的核心:自动配置和Starter,从源代码层面讲解了自动配置和Starter组件的实现,还手把手教会读者实现自己的自动配置和Starter组件;然后以Spring Boot自动配置为基础,详尽介绍了Spring Boot为整合各种Java后端技术所提供的支持,包括常见的自动配置和深入的扩展配置。
2.Java后端开发的终极讲义
本书所介绍的框架和技术包括:Jetty、Tomcat、Undertow、Reactor Netty、Spring MVC、Spring WebFlux、Spring Data、JPA/Hibernate、Spring JDBC、R2DBC、jOOQ、Atomikos、Redis、MongoDB、Neo4j、Cassandra、Solr、Elasticsearch、ActiveMQ、Artemis、RabbitMQ、Kafka;再加上后续出版的本书高级篇要介绍的各种框架和技术,将是Java后端开发的终极讲义。
3.切实可行的学习曲线
与Spring Boot官方手册不同,本书只要求读者具有基本的SSH、SSM基础,并不需要掌握其他框架或技术的知识,本书制定了一条切实可行的学习曲线:只要跟着本书学习,就能真正掌握Spring Boot及Spring Boot所整合的各种技术。

本书写给谁看
如果你已有一定的SSH、SSM基础,或者已经学完了《轻量级Java Web企业应用实战》一书,那么你非常适合阅读此书。此外,如果你对Spring Boot开发有一定的经验,甚至在工作中已经用到了Spring Boot,但希望真正掌握Spring Boot,本书也将非常适合你。如果你对Java Web开发掌握得还不熟练,或者对SSH、SSM完全不会,则建议遵循学习规律,循序渐进,暂时不要购买、阅读此书,而是按照《疯狂Java学习路线图》中建议的顺序学习。

目录

第1章 序幕:Spring Boot入门 1
1.1 Spring Boot简介 2
1.1.1 Java EE应用与Spring 2
1.1.2 为什么要用Spring Boot 3
1.2 第一个Spring Boot应用 3
1.2.1 准备开发环境 3
1.2.2 创建Spring Boot项目 5
1.2.3 编写控制器 9
1.2.4 运行应用 12
1.2.5 创建可执行的JAR包 18
1.2.6 开发业务组件 20
1.2.7 开发DAO组件 24
1.3 编写单元测试 27
1.3.1 测试RESTful接口 27
1.3.2 模拟Web环境测试控制器 28
1.3.3 测试业务组件 30
1.3.4 使用模拟组件 31
1.4 使用其他构建工具 32
1.4.1 使用Gradle构建工具 32
1.4.2 使用Ant开发Spring Boot应用 35
1.5 本章小结 38

第2章 应用配置与自动配置 39
2.1 SpringApplication与Spring容器 40
2.1.1 类配置与XML配置 40
2.1.2 启动日志和失败分析器 43
2.1.3 延迟初始化 44
2.1.4 自定义Banner 45
2.1.5 设置SpringApplication与流式API 47
2.1.6 事件监听器与容器初始化器 48
2.1.7 配置环境后处理器 50
2.1.8 ApplicationRunner和CommandLineRunner 53
2.1.9 创建非Web应用 55
2.1.10 通过ApplicationArguments访问应用参数 56
2.2 外部配置源 57
2.2.1 配置源的加载顺序与优先级 57
2.2.2 利用JSON参数配置 59
2.2.3 使用YAML配置文件 60
2.2.4 改变配置文件的位置 64
2.2.5 导入额外的配置文件 67
2.2.6 使用占位符 68
2.2.7 读取构建文件的属性 69
2.2.8 配置随机值 70
2.3 类型安全的绑定 71
2.3.1 使用属性处理类获取配置属性 72
2.3.2 为容器中的Bean注入配置属性 75
2.3.3 属性转换 78
2.3.4 校验@ConfigurationProperties 79
2.4 Profile 81
2.4.1 配置和切换Profile 81
2.4.2 添加活动Profile 84
2.4.3 Profile组 85
2.4.4 混合复合类型 86
2.4.5 根据环境自动更新Profile 89
2.5 日志配置 90
2.5.1 理解Spring Boot的日志设计 91
2.5.2 日志级别与格式 92
2.5.3 输出日志到文件 97
2.5.4 日志组 100
2.5.5 关闭控制台日志 100
2.5.6 改用Log4j2日志实现 103
2.5.7 Logback扩展 104
2.6 自动配置概述 106
2.6.1 自动配置的替换原则 106
2.6.2 禁用特定的自动配置 107
2.7 创建自己的自动配置 107
2.7.1 自动配置的本质 108
2.7.2 条件注解 113
2.7.3 自定义条件注解 119
2.7.4 自定义自动配置 121
2.7.5 创建自定义的Starter 126
2.8 热插拔与开发者工具 128
2.8.1 静态模板的重加载 128
2.8.2 添加开发者工具 129
2.8.3 自动重启功能 131
2.8.4 实时重加载 134
2.8.5 全局配置 135
2.9 本章小结 136

第3章 Spring Boot的Web应用支持 137
3.1 Web应用配置 138
3.1.1 设置HTTP端口 138
3.1.2 使用随机的HTTP端口 138
3.1.3 运行时获取HTTP端口 138
3.1.4 启用HTTP响应压缩 141
3.1.5 Web服务器的编程式配置 141
3.2 为应用添加Servlet、Filter、Listener 144
3.2.1 使用Spring Bean添加Servlet、Filter或Listener 144
3.2.2 使用XxxRegistrationBean注册Servlet、Filter或Listener 147
3.2.3 使用ClassPath扫描添加Servlet、Filter或Listener 148
3.2.4 JSP限制 150
3.3 配置内嵌Web服务器 150
3.3.1 切换到其他Web服务器 150
3.3.2 配置SSL 152
3.3.3 配置HTTP/2 154
3.3.4 配置访客日志 156
3.4 管理Spring MVC 157
3.4.1 Spring MVC的自动配置 157
3.4.2 静态资源管理 158
3.4.3 自定义首页和图标 164
3.4.4 使用Thymeleaf模板引擎 165
3.4.5 Thymeleaf的基本语法 168
3.4.6 Spring Boot整合Thymeleaf 170
3.4.7 Spring Boot整合FreeMarker 174
3.4.8 Spring Boot整合JSP 178
3.4.9 路径匹配和内容协商 183
3.4.10 错误处理 184
3.4.11 文件上传和输入校验 188
3.5 国际化支持 193
3.5.1 应用国际化 194
3.5.2 在界面上动态改变语言 197
3.6 管理Spring WebFlux框架 199
3.6.1 Spring WebFlux简介 199
3.6.2 Spring WebFlux的自动配置 201
3.6.3 静态资源和首页、图标 201
3.6.4 使用注解开发Spring WebFlux应用 203
3.6.5 函数式开发WebFlux应用及整合模板引擎 208
3.6.6 错误处理 213
3.7 WebSocket支持 215
3.7.1 使用@ServerEndpoint开发WebSocket 215
3.7.2 使用WebFlux开发WebSocket 218
3.8 优雅地关闭应用 222
3.9 本章小结 222

第4章 RESTful服务支持 224
4.1 开发RESTful服务 225
4.1.1 基于JSON的RESTful服务 225
4.1.2 基于XML的RESTful服务 226
4.1.3 Spring Boot内置的JSON支持 229
4.2 RESTful服务的相关配置 232
4.2.1 自定义Jackson的ObjectMapper 232
4.2.2 自定义JSON序列化器和反序列化器 233
4.2.3 使用HttpMessageConverters更换转换器 237
4.2.4 跨域资源共享 239
4.3 RESTful客户端 241
4.3.1 使用RestTemplate调用RESTful服务 242
4.3.2 定制RestTemplate 247
4.3.3 使用WebClient调用RESTful服务 249
4.3.4 WebClient底层的相关配置 252
4.4 本章小结 253

第5章 访问SQL数据库 254
5.1 整合Spring Data JPA 255
5.1.1 Spring Data的设计和核心API 255
5.1.2 Spring Data JPA基本功能 258
5.1.3 数据源配置详解 262
5.1.4 方法名关键字查询 267
5.1.5 指定查询语句和命名查询 273
5.1.6 自定义查询 278
5.1.7 Example查询 281
5.1.8 Specification查询 285
5.2 直接整合JDBC 288
5.3 整合Spring Data JDBC 294
5.4 整合MyBatis 299
5.4.1 扫描Mapper组件 299
5.4.2 直接使用SqlSession 303
5.4.3 配置MyBatis 305
5.4.4 扩展MyBatis 307
5.5 整合jOOQ 307
5.5.1 生成代码 307
5.5.2 使用DSLContext操作数据库 310
5.5.3 jOOQ高级配置 322
5.6 整合R2DBC 322
5.6.1 使用DatabaseClient 323
5.6.2 使用R2DBC的Repository 324
5.7 使用JTA管理分布式事务 329
5.7.1 理解JTA分布式事务 329
5.7.2 使用Atomikos管理MyBatis多数据源应用 331
5.7.3 使用Atomikos管理Spring Data JPA多数据源应用 339
5.7.4 使用Java EE容器提供的事务管理器 345
5.8 初始化数据库 346
5.8.1 基于Spring Data JPA的自动建表 346
5.8.2 执行SQL脚本初始化数据库 347
5.8.3 使用R2DBC初始化数据库 349
5.9 本章小结 350

第6章 操作NoSQL数据库 352
6.1 整合Redis 353
6.1.1 Redis源代码编译、安装与配置 353
6.1.2 使用Redis 355
6.1.3 连接相关命令 357
6.1.4 key相关命令 358
6.1.5 String相关命令 359
6.1.6 List相关命令 360
6.1.7 Set相关命令 362
6.1.8 ZSet相关命令 363
6.1.9 Hash相关命令 366
6.1.10 事务相关命令 368
6.1.11 发布/订阅相关命令 369
6.1.12 Lettuce用法简介 370
6.1.13 使用RedisTemplate操作Redis 380
6.1.14 使用Spring Data Redis 382
6.1.15 连接多个Redis服务器 390
6.2 整合MongoDB 390
6.2.1 下载和安装MongoDB 390
6.2.2 MongoDB副本集配置 392
6.2.3 MongoDB安全配置 393
6.2.4 MongoDB用法简介 397
6.2.5 连接MongoDB与MongoTemplate 407
6.2.6 使用MongoDB的Repository 409
6.2.7 连接多个MongoDB服务器 418
6.3 整合Neo4j 419
6.3.1 理解图形数据库 419
6.3.2 下载和安装Neo4j 423
6.3.3 配置Neo4j 425
6.3.4 CQL概述 427
6.3.5 使用CREATE创建节点 428
6.3.6 使用MATCH查询节点、属性 431
6.3.7 使用CREATE创建关系 437
6.3.8 使用MATCH查询关系 440
6.3.9 使用DELETE删除节点或关系 442
6.3.10 使用REMOVE删除属性或标签 444
6.3.11 使用SET添加、更新属性或添加标签 445
6.3.12 使用UNION和UNION ALL计算并集 446
6.3.13 操作索引 448
6.3.14 操作约束 450
6.3.15 使用FOREACH、UNWIND处理列表 451
6.3.16 连接Neo4j与Neo4jTemplate 453
6.3.17 使用Neo4j的Repository 455
6.3.18 连接多个Neo4j服务器 465
6.4 整合Cassandra 466
6.4.1 Cassandra数据模型 466
6.4.2 Cassandra存储引擎 469
6.4.3 下载和安装Cassandra 470
6.4.4 配置Cassandra 472
6.4.5 管理keyspace 473
6.4.6 管理表 475
6.4.7 CQL的DML 478
6.4.8 集合类型与用户定义类型 481
6.4.9 索引操作及索引列查询 487
6.4.10 连接Cassandra与CassandraTemplate 488
6.4.11 使用Cassandra的Repository 491
6.4.12 连接多个Cassandra服务器 500
6.5 整合Solr 500
6.5.1 LIKE模糊查询与全文检索 500
6.5.2 反向索引库与Lucene 501
6.5.3 下载和安装Solr 502
6.5.4 管理Solr的Core 506
6.5.5 使用SolrClient连接Solr 513
6.5.6 使用Spring Data连接Solr与SolrTemplate 518
6.5.7 使用Solr的Repository 519
6.6 整合Elasticsearch 523
6.6.1 下载和安装Elasticsearch 523
6.6.2 Elasticsearch安全配置 524
6.6.3 Elasticsearch基本用法 527
6.6.4 使用RESTful客户端操作Elasticsearch 532
6.6.5 使用反应式RESTful客户端操作Elasticsearch 538
6.6.6 使用Spring Data连接Elasticsearch与ElasticsearchRestTemplate 541
6.6.7 使用Elasticsearch的Repository 541
6.7 本章小结 546

第7章 消息机制 547
7.1 面向消息的架构和JMS 548
7.1.1 面向消息的架构 548
7.1.2 JMS的基础与优势 550
7.1.3 理解P2P与Pub-Sub 550
7.2 整合JMS 551
7.2.1 安装和配置ActiveMQ 551
7.2.2 安装和配置Artemis 554
7.2.3 发送P2P消息 557
7.2.4 同步接收P2P消息 561
7.2.5 异步接收P2P消息 563
7.2.6 发布和订阅Pub-Sub消息 564
7.2.7 可靠的JMS订阅 565
7.2.8 Spring Boot的ActiveMQ配置 566
7.2.9 Spring Boot的Artemis配置 568
7.2.10 Spring Boot的JNDI ConnectionFactory配置 569
7.2.11 发送消息 569
7.2.12 接收消息 570
7.3 整合AMQP 572
7.3.1 安装和配置RabbitMQ 573
7.3.2 管理RabbitMQ 575
7.3.3 RabbitMQ的工作机制 578
7.3.4 使用默认Exchange支持P2P消息模型 580
7.3.5 工作队列(Work Queue) 587
7.3.6 使用fanout实现Pub-Sub消息模型 589
7.3.7 使用direct实现消息路由 591
7.3.8 使用topic实现通配符路由 593
7.3.9 RPC通信模型 595
7.3.10 Spring Boot的RabbitMQ支持 598
7.3.11 使用AmqpTemplate发送消息 601
7.3.12 接收消息 602
7.4 整合Kafka 603
7.4.1 安装Kafka及CMAK 603
7.4.2 使用CMAK 607
7.4.3 主题和分区 610
7.4.4 消息生产者 614
7.4.5 消费者与消费者组 615
7.4.6 使用Kafka核心API 621
7.4.7 使用Kafka流API 626
7.4.8 Spring Boot对Kafka的支持 629
7.4.9 发送消息 632
7.4.10 接收消息 633
7.4.11 Spring Boot整合Kafka流API 635
7.5 本章小结 637

第8章 高并发秒杀系统 639
8.1 项目背景及系统架构 640
8.1.1 应用背景 640
8.1.2 相关技术介绍 640
8.1.3 系统架构 642
8.1.4 系统的功能模块 642
8.2 项目搭建 643
8.3 领域对象层 645
8.3.1 设计领域对象 645
8.3.2 创建领域对象类 648
8.4 实现Mapper(DAO)层 649
8.4.1 实现Mapper组件 649
8.4.2 部署Mapper组件 651
8.5 分布式Session及用户登录的实现 652
8.5.1 实现Redis组件 652
8.5.2 分布式Session的实现 656
8.5.3 用户登录的实现 659
8.5.4 图形验证码 663
8.5.5 登录页面的实现 664
8.6 秒杀商品列表及缓存的实现 668
8.6.1 秒杀商品列表 668
8.6.2 自定义User参数解析器 670
8.6.3 访问权限控制 671
8.6.4 秒杀商品页面模板 674
8.7 商品秒杀界面的实现及静态化 675
8.7.1 获取秒杀商品 676
8.7.2 秒杀界面的页面实现 677
8.8 秒杀实现及使用RabbitMQ实现并发削峰 684
8.8.1 生成秒杀图形验证码 684
8.8.2 获取动态的秒杀地址 686
8.8.3 处理秒杀请求 687
8.8.4 使用RabbitMQ限制并发 690
8.8.5 获取秒杀结果 694
8.9 订单界面的实现及静态化 695
8.9.1 获取订单 696
8.9.2 订单界面的实现 697
8.10 本章小结 699

读者评论

相关博文

  • 好多大咖曾看他的书学习Java,如今这个男人的新作来了!

    好多大咖曾看他的书学习Java,如今这个男人的新作来了!

    博文小编 2021-07-21

    大概半年前,李刚老师群里的粉丝们就听说他在写一本Spring Boot的书,之后听说书稿交给了出版社,然后就是漫长的等待…… 7月上旬,粉丝们翘首企盼的《疯狂Spring Boot终极讲义》终于横空出世,登陆各电商平台。 不出...

    博文小编 2021-07-21
    257 0 1 0
  • 横跨Java后端关键技术,Spring Boot终极体系做到了

    横跨Java后端关键技术,Spring Boot终极体系做到了

    博文小编 2022-08-22

    不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项。 由于其拥有了开箱即用的特性以及强大的功能,使得开发人员可以快速的实现微服务以及服务的治理、熔断等。 想真正掌握Spring Boot,或者曾经...

    博文小编 2022-08-22
    214 0 0 0