商品详情
书名:疯狂Spring Boot**讲义
定价:168.0
ISBN:9787121413711
作者:无
版次:第1版
出版时间:2021-06
内容提要:
《疯狂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实训营创始人,疯狂Java体系原创图书作者。CSDN爆款课程讲师。培训的学生已在腾讯、阿里、华为等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Python讲义》《疯狂Android讲义》《轻量级Java Web企业应用实战》《疯狂HTML5/CSS3/JavaScript讲义》等著作。疯狂Java体系图书均已沉淀多年,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材,部分图书已被转换成繁体中文版,授权到宝岛台湾。
目录:
第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
定价:168.0
ISBN:9787121413711
作者:无
版次:第1版
出版时间:2021-06
内容提要:
《疯狂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实训营创始人,疯狂Java体系原创图书作者。CSDN爆款课程讲师。培训的学生已在腾讯、阿里、华为等名企就职。国内知名高端IT技术图书作家,已出版《疯狂Java讲义》《疯狂Python讲义》《疯狂Android讲义》《轻量级Java Web企业应用实战》《疯狂HTML5/CSS3/JavaScript讲义》等著作。疯狂Java体系图书均已沉淀多年,多部著作印刷数量超过10万册,并被多所“985”“211”院校选作教材,部分图书已被转换成繁体中文版,授权到宝岛台湾。
目录:
第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
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺