书籍详情
Spring Boot实战派
作者:龙中华
出版社:电子工业出版社
出版时间:2020-01-01
ISBN:9787121377365
定价:¥109.00
购买这本书可以去
内容简介
本书针对Spring Boot 2.0以上版本,采用“知识点+实例”的形式编写。通过“58个基于知识的实例 + 2个综合性的项目”,深入地讲解Spring Boot的技术原理、知识点和具体应用。把晦涩难懂的理论用实例展现出来,使得读者对知识的理解变得非常容易,同时也立即学会如何使用它。要成为一本有温度的书,只做到上面这些还远远不够。所以,本书花费大量的力气对比讲解多种同类技术的知识、使用和区别,读者可以根据自己的喜欢进行技术选型;还讲解了时下流行的接口架构风格RESTFUL、用来实现高并发的Redis、用来实现系统间通信的中间件RabbitMQ。最后两章融合了本书所讲知识点,讲解了两个常用又实用的实战项目。本书适合所有对Spring Boot感兴趣的读者阅读。
作者简介
龙中华,拥有10多年一线企业开发经验。对多种技术有深入了解和研究,致力于用技术为公司业务创造利润。曾在多家公司担任主程序员和系统架构师,现就职于某大数据研究机构,担任技术顾问。
目录
入 门 篇
第1章 进入Spring Boot世界\t2
1.1 认识Spring Boot\t2
1.1.1 什么是Spring Boot\t2
1.1.2 Spring、Spring Boot、Spring Cloud的关系\t4
1.1.3 Spring Boot的特色\t5
1.1.4 Spring Boot支持的开发语言\t6
1.1.5 学习Spring Boot的前景展望\t6
1.2 学习Spring Boot的建议\t7
1.2.1 看透本书理论,模仿实战例子\t7
1.2.2 利用开发工具自动学习\t7
1.2.3 发现新功能的方法\t8
1.2.4 建立高阶的思维方式\t9
1.2.5 控制版本,降低犯错的代价\t10
1.2.6 获取最新、最全的资料\t11
1.2.7 学会自己发现和解决问题\t11
1.2.8 善于提问,成功一半\t12
第2章 准备开发环境\t14
2.1 搭建环境\t14
2.1.1 安装Java开发环境JDK\t14
2.1.2 配置JDK的环境变量\t15
2.2 熟悉Maven\t18
2.2.1 安装及配置Maven\t18
2.2.2 认识其中的pom.xml文件\t19
2.2.3 Maven的运作方式\t23
2.2.4 配置国内仓库\t23
第3章 使用开发工具\t25
3.1 安装开发工具IDEA及插件\t25
3.1.1 安装IDEA\t25
3.1.2 配置IDEA的Maven环境\t27
3.1.3 安装Spring Assistant插件\t27
3.1.4 安装插件Lombok\t28
3.2 实例1:用Spring Boot输出“Hello World”\t30
3.2.1 构建Spring Boot项目\t30
3.2.2 编写控制器,实现输出功能\t31
3.2.3 在IDEA中运行程序\t33
3.2.4 打包成可执行的JAR包\t33
3.3 在Eclipse中开发Spring Boot应用程序\t35
3.3.1 安装Eclipse\t35
3.3.2 安装Spring Tools 4插件\t35
3.3.3 配置Eclipse的Maven环境\t36
3.3.4 创建Spring Boot项目\t37
3.4 了解Spring官方开发工具STS\t37
3.5 必会的IDEA实用技能\t38
3.5.1 智能提示代码\t38
3.5.2 自动提示参数\t39
3.5.3 实现自动转义\t39
3.5.4 自定义高复用代码块\t40
3.5.5 设置注释信息\t41
3.5.6 超能的“Alt+Enter”快捷键\t42
3.5.7 使用全局配置\t42
3.5.8 自动生成语句\t43
3.6 比较IDEA与Eclipse\t44
3.7 如何使用本书源代码\t47
3.7.1 在IDEA中使用\t47
3.7.2 在Eclipse(STS)中使用\t47
基 础 篇
第4章 Spring Boot基础\t50
4.1 了解Spring Boot\t50
4.1.1 了解Spring Boot项目结构\t50
4.1.2 了解Spring Boot的入口类\t51
4.1.3 了解Spring Boot的自动配置\t52
4.1.4 了解Spring Boot热部署\t52
4.1.5 实例2:定制启动画面\t53
4.2 Spring Boot的常用注解\t54
4.2.1 什么是注解式编程\t55
4.2.2 了解系统注解\t55
4.2.3 Spring Boot的常用注解\t56
4.3 使用配置文件\t61
4.3.1 实例3:演示如何使用application.yml文件\t62
4.3.2 实例4:演示如何使用application.properties文件\t65
4.3.3 实例5:用application.yml和application.properties配置多环境\t67
4.4 了解Spring Boot的Starter\t69
4.4.1 官方的Starter\t69
4.4.2 使用Starter\t70
第5章 分层开发Web应用程序\t71
5.1 应用程序分层开发模式――MVC\t71
5.1.1 了解MVC模式\t71
5.1.2 MVC和三层架构的关系\t72
5.2 使用视图技术Thymeleaf\t73
5.2.1 认识Thymeleaf\t73
5.2.2 基础语法\t75
5.2.3 处理循环遍历\t78
5.2.4 处理公共代码块\t80
5.2.5 处理分页\t81
5.2.6 验证和提示错误消息\t82
5.2.7 实例6:编写Thymeleaf视图以展示数据\t83
5.3 使用控制器\t85
5.3.1 常用注解\t85
5.3.2 将URL映射到方法\t86
5.3.3 处理HTTP请求方法\t87
5.3.4 处理内容类型\t89
5.3.5 方法中参数的使用\t90
5.4 理解模型\t93
5.5 实例7:实现MVC模式的Web应用程序\t94
5.5.1 添加依赖\t94
5.5.2 创建实体模型\t95
5.5.3 创建控制器\t95
5.5.4 创建用于展示的视图\t96
5.6 验证数据\t96
5.6.1 认识内置的验证器Hibernate-validator\t96
5.6.2 自定义验证功能\t98
5.6.3 实例8:验证表单数据并实现数据的自定义验证\t99
第6章 响应式编程\t103
6.1 认识响应式编程\t103
6.1.1 什么是WebFlux\t103
6.1.2 比较MVC和WebFlux\t103
6.1.3 认识Mono和Flux\t105
6.1.4 开发WebFlux的流程\t106
6.2 实例9:用注解式开发实现Hello World\t107
6.2.1 配置WebFlux依赖\t107
6.2.2 编写控制器\t107
6.3 实例10:用注解式开发实现数据的增加、删除、修改和查询\t108
6.3.1 创建实体类\t108
6.3.2 编写控制器\t108
6.3.3 测试API功能\t110
6.4 实例11:用响应式开发WebFlux\t111
6.4.1 编写处理器类Handler\t111
6.4.2 编写路由器类Router\t112
6.5 实例12:用WebFlux模式操作MongoDB数据库,实现数据的增加、删除、修改和查询功能112
6.5.1 添加依赖\t112
6.5.2 创建实体类\t113
6.5.3 编写接口\t113
6.5.4 编写增加、删除、修改和查询
数据的API\t113
进 阶 篇
第7章 Spring Boot进阶\t118
7.1 面向切面编程AOP\t118
7.1.1 认识Spring AOP\t118
7.1.2 实例13:用AOP方式管理日志\t119
7.2 认识IoC容器和Servlet容器\t121
7.2.1 认识容器\t121
7.2.2 实例14:用IoC管理Bean\t123
7.2.3 实例15:用Servlet处理请求\t125
7.3 过滤器与监听器\t126
7.3.1 认识过滤器\t126
7.3.2 实例16:实现过滤器\t128
7.3.3 认识监听器\t128
7.3.4 实例17:实现监听器\t129
7.4 自动配置\t130
7.4.1 自定义入口类\t130
7.4.2 自动配置的原理\t131
7.4.3 实例18:自定义Starter\t133
7.5 元注解\t136
7.5.1 了解元注解\t136
7.5.2 实例19:自定义注解\t137
7.6 异常处理\t138
7.6.1 认识异常处理\t138
7.6.2 使用控制器通知\t141
7.6.3 实例20:自定义错误处理控制器\t142
7.6.4 实例21:自定义业务异常类\t143
7.7 单元测试\t145
7.7.1 了解单元测试\t145
7.7.2 Spring Boot 的测试库\t145
7.7.3 快速创建测试单元\t149
7.7.4 实例22:Controller层的单元测试\t150
7.7.5 实例23:Service层的单元测试\t153
7.7.6 实例24:Repository层的单元测试\t154
第8章 用ORM操作SQL数据库\t156
8.1 认识Java的数据库连接模板JDBCTemplate\t156
8.1.1 认识JDBCTemplate\t156
8.1.2 实例25:用JDBCTemplate
实现数据的增加、删除、修改和查询\t157
8.1.3 认识ORM\t161
8.2 JPA――Java持久层API\t161
8.2.1 认识Spring Data\t161
8.2.2 认识JPA\t162
8.2.3 使用JPA\t164
8.2.4 JPA注解和属性介绍\t165
8.2.5 实例26:用JPA构建实体数据表\t167
8.3 认识JPA的接口\t169
8.3.1 JPA接口JpaRepository\t169
8.3.2 分页排序接口PagingAndSortingRepository\t169
8.3.3 数据操作接口CrudRepository\t170
8.3.4 分页接口Pageable和Page\t170
8.3.5 排序类Sort\t171
8.4 JPA的查询方式\t171
8.4.1 约定方法名\t171
8.4.2 JPQL\t173
8.4.3 原生SQL\t174
8.4.4 Specifications\t175
8.4.5 ExampleMatcher\t177
8.4.6 谓语QueryDSL\t177
8.4.7 NamedQuery\t177
8.5 实例27:用JPA开发文章管理模块\t178
8.5.1 实现文章实体\t178
8.5.2 实现数据持久层\t179
8.5.3 实现服务接口和服务接口的实现类\t179
8.5.4 实现增加、删除、修改和查询的控制层API功能\t180
8.5.5 实现增加、删除、修改和查询功能的视图层\t182
8.6 实现自动填充字段\t185
8.7 掌握关系映射开发\t187
8.7.1 认识实体间关系映射\t187
8.7.2 实例28:实现“一对一”映射\t188
8.7.3 实例29:实现“一对多”映射\t192
8.7.4 实例30:实现“多对多”映射\t195
8.8 认识MyBatis――Java数据持久层框架\t197
8.8.1 CRUD注解\t198
8.8.2 映射注解\t198
8.8.3 高级注解\t199
8.9 实例31:用MyBatis实现数据的增加、删除、修改、查询和分页\t200
8.9.1 创建Spring Boot项目并引入依赖\t201
8.9.2 实现数据表的自动初始化\t201
8.9.3 实现实体对象建模\t202
8.9.4 实现实体和数据表的映射关系\t202
8.9.5 实现增加、删除、修改和查询功能\t203
8.9.6 配置分页功能\t204
8.9.7 实现分页控制器\t205
8.9.8 创建分页视图\t206
8.10 比较JPA与MyBatis\t207
第9章 接口架构风格――RESTful\t209
9.1 REST――前后台间的通信方式\t209
9.1.1 认识REST\t209
9.1.2 认识HTTP方法与CRUD动作映射\t210
9.1.3 实现RESTful风格的数据增加、删除、修改和查询\t210
9.2 设计统一的RESTful风格的数据接口\t212
9.2.1 版本控制\t212
9.2.2 过滤信息\t213
9.2.3 确定HTTP方法\t213
9.2.4 确定HTTP的返回状态\t213
9.2.5 定义统一返回格式\t214
9.3 实例32:为APP、PC、H5网页提供统一风格的API\t214
9.3.1 实现响应的枚举类\t214
9.3.2 实现返回的对象实体\t215
9.3.3 封装返回结果\t215
9.3.4 统一处理异常\t215
9.3.5 编写测试控制器\t219
9.3.6 实现数据的增加、删除、修改和查询控制器\t220
9.3.7 测试数据\t221
9.4 实例33:用Swagger实现接口文档\t222
9.4.1 配置Swagger\t222
9.4.2 编写接口文档\t224
9.5 用RestTemplate发起请求\t224
9.5.1 认识RestTemplate\t224
9.5.2 实例34:用RestTemplate发送GET请求\t225
9.5.3 实例35:用RestTemplate发送POST请求\t228
9.5.4 用RestTemplate发送PUT和DELETE请求\t231
第10章 集成安全框架,实现安全认证和授权\t233
10.1 Spring Security――Spring的安全框架\t233
10.1.1 认识Spring Security\t233
10.1.2 核心类\t235
10.2 配置Spring Security\t240
10.2.1 继承WebSecurityConfigurer-Adapter\t240
10.2.2 配置自定义策略\t240
10.2.3 配置加密方式\t242
10.2.4 自定义加密规则\t242
10.2.5 配置多用户系统\t242
10.2.6 获取当前登录用户信息的几种方式\t244
10.3 实例36:用Spring Security实现后台登录及权限认证功能\t246
10.3.1 引入依赖\t246
10.3.2 创建权限开放的页面\t246
10.3.3 创建需要权限验证的页面\t247
10.3.4 配置Spring Security\t247
10.3.5 创建登录页面\t248
10.3.6 测试权限\t249
10.4 权限控制方式\t249
10.4.1 Spring EL权限表达式\t249
10.4.2 通过表达式控制URL权限\t250
10.4.3 通过表达式控制方法权限\t252
10.4.4 实例37:使用JSR-250注解\t254
10.4.5 实例38:实现RBAC权限模型\t256
10.5 认识JWT\t258
10.6 实例39:用JWT技术为Spring Boot
的API增加认证和授权保护\t260
10.6.1 配置安全类\t260
10.6.2 处理注册\t261
10.6.3 处理登录\t262
10.6.4 测试多方式注册和登录\t264
10.6.5 测试token方式登录和授权\t265
10.7 Shiro――Apache通用安全框架\t266
10.7.1 认识Shiro安全框架\t266
10.7.2 认识Shiro的核心组件\t267
10.8 实例40:用Shiro实现管理后台的动态权限功能\t267
10.8.1 创建实体\t267
10.8.2 实现视图模板\t270
10.8.3 进行权限配置\t271
10.8.4 实现认证身份功能\t271
10.8.5 测试权限\t272
10.9 对比Spring Security与Shiro\t273
第11章 在Spring Boot中使用Redis实现高并发\t275
11.1 认识Spring Cache\t275
11.1.1 声明式缓存注解\t276
11.1.2 实例41:用Cache进行缓存管理\t278
11.1.3 整合Ehcache\t281
11.1.4 整合Caffeine\t281
11.2 认识Redis\t282
11.2.1 对比Redis与Memcached\t282
11.2.2 Redis的适用场景\t285
11.3 Redis的数据类型\t285
11.4 用RedisTemplate操作Redis的5种数据类型\t287
11.4.1 认识opsFor方法\t287
11.4.2 实例42:操作字符串\t287
11.4.3 实例43:操作散列\t290
11.4.4 实例44:操作列表\t294
11.4.5 实例45:操作集合\t298
11.4.6 实例46:操作有序集合Zset\t301
11.4.7 比较RedisTemplate和StringRedisTemplate\t306
11.5 实例47:用Redis和MyBatis完成缓存数据的增加、删除、修改、查询功能\t306
11.5.1 在Spring Boot中集成Redis\t306
11.5.2 配置Redis类\t307
11.5.3 创建测试实体类\t308
11.5.4 实现实体和数据表的映射关系\t309
11.5.5 创建Redis缓存服务层\t309
11.5.6 完成增加、删除、修改和查询测试API\t310
11.6 实例48:用Redis和JPA实现缓存文章和点击量\t311
11.6.1 实现缓存文章\t311
11.6.2 实现统计点击量\t312
11.6.3 实现定时同步\t312
11.7 实例49:实现分布式Session\t313
11.7.1 用Redis实现Session共享\t313
11.7.2 配置Nginx实现负载均衡\t314
第12章 用RabbitMQ实现系统间的数据交换\t316
12.1 认识RabbitMQ\t316
12.1.1 介绍RabbitMQ\t316
12.1.2 使用场景\t317
12.1.3 特性\t318
12.2 RabbitMQ的基本概念\t318
12.2.1 生产者、消费者和代理\t318
12.2.2 消息队列\t319
12.2.3 交换机(Exchange)\t319
12.2.4 绑定\t320
12.2.5 通道\t321
12.2.6 消息确认\t321
12.3 RabbitMQ的六种工作模式\t321
12.3.1 简单模式\t321
12.3.2 工作队列模式\t321
12.3.3 交换机模式\t322
12.3.4 Routing转发模式\t322
12.3.5 主题转发模式\t322
12.3.6 RPC模式\t323
12.4 认识AmqpTemplate接口\t323
12.4.1 发送消息\t324
12.4.2 接收消息\t324
12.4.3 异步接收消息\t325
12.5 在Spring Boot中集成RabbitMQ\t325
12.5.1 安装RabbitMQ\t325
12.5.2 界面化管理RabbitMQ\t326
12.5.3 在Spring Boot中配置RabbitMQ\t327
12.6 在Spring Boot中实现RabbitMQ
的4种发送/接收模式\t328
12.6.1 实例50:实现发送和接收队列\t328
12.6.2 实例51:实现发送和接收对象\t330
12.6.3 实例52:实现用接收器接收多个主题\t331
12.6.4 实例53:实现广播模式\t334
12.7 实例54:实现消息队列延迟功能\t336
第13章 使用NoSQL数据库实现搜索引擎\t339
13.1 Elasticsearch――搜索应用服务器\t339
13.1.1 什么是搜索引擎\t339
13.1.2 用数据库实现搜索功能\t339
13.1.3 认识Elasticsearch\t343
13.1.4 Elasticsearch应用案例\t343
13.1.5 对比Elasticsearch与MySQL\t343
13.1.6 认识ElasticSearchRepository\t344
13.1.7 认识ElasticsearchTemplate\t345
13.1.8 认识注解@Document\t345
13.1.9 管理索引\t347
13.2 实例55:用ELK管理Spring Boot应用程序的日志\t348
13.2.1 安装Elasticsearch\t348
13.2.2 安装Logstash\t349
13.2.3 安装Kibana\t350
13.2.4 配置Spring Boot项目\t350
13.2.5 创建日志计划任务\t351
13.2.6 用Kibana查看管理日志\t352
13.3 实例56:在Spring Boot中实现增加、
删除、修改、查询 文档的功能\t353
13.3.1 集成Elasticsearch\t353
13.3.2 创建实体\t353
13.3.3 创建增加、删除、修改和查询API\t355
13.4 Elasticsearch查询\t356
13.4.1 自定义方法\t356
13.4.2 精准查询\t357
13.4.3 模糊查询\t359
13.4.4 范围查询\t362
13.4.5 组合查询\t362
13.4.6 分页查询\t363
13.4.7 聚合查询\t364
13.5 实例57:实现产品搜索引擎\t365
13.6 Solr――搜索应用服务器\t367
13.6.1 了解Solr\t367
13.6.2 安装配置Solr\t367
13.6.3 整合Spring Boot和Solr\t368
13.7 实例58:在Solr中实现数据的增加、删除、修改和查询\t369
13.7.1 创建User类\t369
13.7.2 测试增加、删除、修改和查询功能\t369
13.8 对比Elasticsearch和Solr\t372
项目实战篇
第14章 实例59:开发企业级通用的后台系统\t376
14.1 用JPA实现实体间映射关系\t376
14.1.1 创建用户实体\t376
14.1.2 创建角色实体\t377
14.1.3 创建权限实体\t378
14.2 用Spring Security实现动态授权(RBAC)功能\t380
14.2.1 实现管理(增加、删除、修改和
查询)管理员角色功能\t380
14.2.2 实现管理权限功能\t381
14.2.3 实现管理管理员功能\t383
14.2.4 配置安全类\t384
14.2.5 实现基于RBAC权限控制
功能\t386
14.3 监控Spring Boot应用\t387
14.3.1 在Spring Boot中集成Actuator\t387
14.3.2 在Spring Boot中集成Spring Boot admin应用监控\t390
14.3.3 在Spring Boot中集成Druid连接池监控\t392
第15章 实例60:实现一个类似“京东”的电子商务商城\t394
15.1 用Spring Security实现会员系统\t394
15.1.1 实现会员实体\t394
15.1.2 实现会员接口\t395
15.1.3 实现用户名、邮箱、手机号多方式注册功能\t396
15.1.4 实现用MQ发送会员注册验证邮件\t398
15.1.5 实现用户名、邮箱、手机号多方式登录功能\t399
15.2 整合会员系统(Web、APP多端多方式注册登录)+后台系统\t400
15.3 实现购物系统\t401
15.3.1 设计数据表\t401
15.3.2 实现商品展示功能\t402
15.3.3 实现购物车功能\t403
15.3.4 用Redis实现购物车数据持久化\t404
15.4 用Redis实现分布式秒杀系统\t406
15.4.1 实现抢购功能,解决并发超卖问题\t406
15.4.2 缓存页面和限流\t409
15.5 用RabbitMQ实现订单过期取消功能\t409
15.6 实现结算和支付功能\t411
15.6.1 实现结算生成订单功能\t411
15.6.2 集成支付\t412
第1章 进入Spring Boot世界\t2
1.1 认识Spring Boot\t2
1.1.1 什么是Spring Boot\t2
1.1.2 Spring、Spring Boot、Spring Cloud的关系\t4
1.1.3 Spring Boot的特色\t5
1.1.4 Spring Boot支持的开发语言\t6
1.1.5 学习Spring Boot的前景展望\t6
1.2 学习Spring Boot的建议\t7
1.2.1 看透本书理论,模仿实战例子\t7
1.2.2 利用开发工具自动学习\t7
1.2.3 发现新功能的方法\t8
1.2.4 建立高阶的思维方式\t9
1.2.5 控制版本,降低犯错的代价\t10
1.2.6 获取最新、最全的资料\t11
1.2.7 学会自己发现和解决问题\t11
1.2.8 善于提问,成功一半\t12
第2章 准备开发环境\t14
2.1 搭建环境\t14
2.1.1 安装Java开发环境JDK\t14
2.1.2 配置JDK的环境变量\t15
2.2 熟悉Maven\t18
2.2.1 安装及配置Maven\t18
2.2.2 认识其中的pom.xml文件\t19
2.2.3 Maven的运作方式\t23
2.2.4 配置国内仓库\t23
第3章 使用开发工具\t25
3.1 安装开发工具IDEA及插件\t25
3.1.1 安装IDEA\t25
3.1.2 配置IDEA的Maven环境\t27
3.1.3 安装Spring Assistant插件\t27
3.1.4 安装插件Lombok\t28
3.2 实例1:用Spring Boot输出“Hello World”\t30
3.2.1 构建Spring Boot项目\t30
3.2.2 编写控制器,实现输出功能\t31
3.2.3 在IDEA中运行程序\t33
3.2.4 打包成可执行的JAR包\t33
3.3 在Eclipse中开发Spring Boot应用程序\t35
3.3.1 安装Eclipse\t35
3.3.2 安装Spring Tools 4插件\t35
3.3.3 配置Eclipse的Maven环境\t36
3.3.4 创建Spring Boot项目\t37
3.4 了解Spring官方开发工具STS\t37
3.5 必会的IDEA实用技能\t38
3.5.1 智能提示代码\t38
3.5.2 自动提示参数\t39
3.5.3 实现自动转义\t39
3.5.4 自定义高复用代码块\t40
3.5.5 设置注释信息\t41
3.5.6 超能的“Alt+Enter”快捷键\t42
3.5.7 使用全局配置\t42
3.5.8 自动生成语句\t43
3.6 比较IDEA与Eclipse\t44
3.7 如何使用本书源代码\t47
3.7.1 在IDEA中使用\t47
3.7.2 在Eclipse(STS)中使用\t47
基 础 篇
第4章 Spring Boot基础\t50
4.1 了解Spring Boot\t50
4.1.1 了解Spring Boot项目结构\t50
4.1.2 了解Spring Boot的入口类\t51
4.1.3 了解Spring Boot的自动配置\t52
4.1.4 了解Spring Boot热部署\t52
4.1.5 实例2:定制启动画面\t53
4.2 Spring Boot的常用注解\t54
4.2.1 什么是注解式编程\t55
4.2.2 了解系统注解\t55
4.2.3 Spring Boot的常用注解\t56
4.3 使用配置文件\t61
4.3.1 实例3:演示如何使用application.yml文件\t62
4.3.2 实例4:演示如何使用application.properties文件\t65
4.3.3 实例5:用application.yml和application.properties配置多环境\t67
4.4 了解Spring Boot的Starter\t69
4.4.1 官方的Starter\t69
4.4.2 使用Starter\t70
第5章 分层开发Web应用程序\t71
5.1 应用程序分层开发模式――MVC\t71
5.1.1 了解MVC模式\t71
5.1.2 MVC和三层架构的关系\t72
5.2 使用视图技术Thymeleaf\t73
5.2.1 认识Thymeleaf\t73
5.2.2 基础语法\t75
5.2.3 处理循环遍历\t78
5.2.4 处理公共代码块\t80
5.2.5 处理分页\t81
5.2.6 验证和提示错误消息\t82
5.2.7 实例6:编写Thymeleaf视图以展示数据\t83
5.3 使用控制器\t85
5.3.1 常用注解\t85
5.3.2 将URL映射到方法\t86
5.3.3 处理HTTP请求方法\t87
5.3.4 处理内容类型\t89
5.3.5 方法中参数的使用\t90
5.4 理解模型\t93
5.5 实例7:实现MVC模式的Web应用程序\t94
5.5.1 添加依赖\t94
5.5.2 创建实体模型\t95
5.5.3 创建控制器\t95
5.5.4 创建用于展示的视图\t96
5.6 验证数据\t96
5.6.1 认识内置的验证器Hibernate-validator\t96
5.6.2 自定义验证功能\t98
5.6.3 实例8:验证表单数据并实现数据的自定义验证\t99
第6章 响应式编程\t103
6.1 认识响应式编程\t103
6.1.1 什么是WebFlux\t103
6.1.2 比较MVC和WebFlux\t103
6.1.3 认识Mono和Flux\t105
6.1.4 开发WebFlux的流程\t106
6.2 实例9:用注解式开发实现Hello World\t107
6.2.1 配置WebFlux依赖\t107
6.2.2 编写控制器\t107
6.3 实例10:用注解式开发实现数据的增加、删除、修改和查询\t108
6.3.1 创建实体类\t108
6.3.2 编写控制器\t108
6.3.3 测试API功能\t110
6.4 实例11:用响应式开发WebFlux\t111
6.4.1 编写处理器类Handler\t111
6.4.2 编写路由器类Router\t112
6.5 实例12:用WebFlux模式操作MongoDB数据库,实现数据的增加、删除、修改和查询功能112
6.5.1 添加依赖\t112
6.5.2 创建实体类\t113
6.5.3 编写接口\t113
6.5.4 编写增加、删除、修改和查询
数据的API\t113
进 阶 篇
第7章 Spring Boot进阶\t118
7.1 面向切面编程AOP\t118
7.1.1 认识Spring AOP\t118
7.1.2 实例13:用AOP方式管理日志\t119
7.2 认识IoC容器和Servlet容器\t121
7.2.1 认识容器\t121
7.2.2 实例14:用IoC管理Bean\t123
7.2.3 实例15:用Servlet处理请求\t125
7.3 过滤器与监听器\t126
7.3.1 认识过滤器\t126
7.3.2 实例16:实现过滤器\t128
7.3.3 认识监听器\t128
7.3.4 实例17:实现监听器\t129
7.4 自动配置\t130
7.4.1 自定义入口类\t130
7.4.2 自动配置的原理\t131
7.4.3 实例18:自定义Starter\t133
7.5 元注解\t136
7.5.1 了解元注解\t136
7.5.2 实例19:自定义注解\t137
7.6 异常处理\t138
7.6.1 认识异常处理\t138
7.6.2 使用控制器通知\t141
7.6.3 实例20:自定义错误处理控制器\t142
7.6.4 实例21:自定义业务异常类\t143
7.7 单元测试\t145
7.7.1 了解单元测试\t145
7.7.2 Spring Boot 的测试库\t145
7.7.3 快速创建测试单元\t149
7.7.4 实例22:Controller层的单元测试\t150
7.7.5 实例23:Service层的单元测试\t153
7.7.6 实例24:Repository层的单元测试\t154
第8章 用ORM操作SQL数据库\t156
8.1 认识Java的数据库连接模板JDBCTemplate\t156
8.1.1 认识JDBCTemplate\t156
8.1.2 实例25:用JDBCTemplate
实现数据的增加、删除、修改和查询\t157
8.1.3 认识ORM\t161
8.2 JPA――Java持久层API\t161
8.2.1 认识Spring Data\t161
8.2.2 认识JPA\t162
8.2.3 使用JPA\t164
8.2.4 JPA注解和属性介绍\t165
8.2.5 实例26:用JPA构建实体数据表\t167
8.3 认识JPA的接口\t169
8.3.1 JPA接口JpaRepository\t169
8.3.2 分页排序接口PagingAndSortingRepository\t169
8.3.3 数据操作接口CrudRepository\t170
8.3.4 分页接口Pageable和Page\t170
8.3.5 排序类Sort\t171
8.4 JPA的查询方式\t171
8.4.1 约定方法名\t171
8.4.2 JPQL\t173
8.4.3 原生SQL\t174
8.4.4 Specifications\t175
8.4.5 ExampleMatcher\t177
8.4.6 谓语QueryDSL\t177
8.4.7 NamedQuery\t177
8.5 实例27:用JPA开发文章管理模块\t178
8.5.1 实现文章实体\t178
8.5.2 实现数据持久层\t179
8.5.3 实现服务接口和服务接口的实现类\t179
8.5.4 实现增加、删除、修改和查询的控制层API功能\t180
8.5.5 实现增加、删除、修改和查询功能的视图层\t182
8.6 实现自动填充字段\t185
8.7 掌握关系映射开发\t187
8.7.1 认识实体间关系映射\t187
8.7.2 实例28:实现“一对一”映射\t188
8.7.3 实例29:实现“一对多”映射\t192
8.7.4 实例30:实现“多对多”映射\t195
8.8 认识MyBatis――Java数据持久层框架\t197
8.8.1 CRUD注解\t198
8.8.2 映射注解\t198
8.8.3 高级注解\t199
8.9 实例31:用MyBatis实现数据的增加、删除、修改、查询和分页\t200
8.9.1 创建Spring Boot项目并引入依赖\t201
8.9.2 实现数据表的自动初始化\t201
8.9.3 实现实体对象建模\t202
8.9.4 实现实体和数据表的映射关系\t202
8.9.5 实现增加、删除、修改和查询功能\t203
8.9.6 配置分页功能\t204
8.9.7 实现分页控制器\t205
8.9.8 创建分页视图\t206
8.10 比较JPA与MyBatis\t207
第9章 接口架构风格――RESTful\t209
9.1 REST――前后台间的通信方式\t209
9.1.1 认识REST\t209
9.1.2 认识HTTP方法与CRUD动作映射\t210
9.1.3 实现RESTful风格的数据增加、删除、修改和查询\t210
9.2 设计统一的RESTful风格的数据接口\t212
9.2.1 版本控制\t212
9.2.2 过滤信息\t213
9.2.3 确定HTTP方法\t213
9.2.4 确定HTTP的返回状态\t213
9.2.5 定义统一返回格式\t214
9.3 实例32:为APP、PC、H5网页提供统一风格的API\t214
9.3.1 实现响应的枚举类\t214
9.3.2 实现返回的对象实体\t215
9.3.3 封装返回结果\t215
9.3.4 统一处理异常\t215
9.3.5 编写测试控制器\t219
9.3.6 实现数据的增加、删除、修改和查询控制器\t220
9.3.7 测试数据\t221
9.4 实例33:用Swagger实现接口文档\t222
9.4.1 配置Swagger\t222
9.4.2 编写接口文档\t224
9.5 用RestTemplate发起请求\t224
9.5.1 认识RestTemplate\t224
9.5.2 实例34:用RestTemplate发送GET请求\t225
9.5.3 实例35:用RestTemplate发送POST请求\t228
9.5.4 用RestTemplate发送PUT和DELETE请求\t231
第10章 集成安全框架,实现安全认证和授权\t233
10.1 Spring Security――Spring的安全框架\t233
10.1.1 认识Spring Security\t233
10.1.2 核心类\t235
10.2 配置Spring Security\t240
10.2.1 继承WebSecurityConfigurer-Adapter\t240
10.2.2 配置自定义策略\t240
10.2.3 配置加密方式\t242
10.2.4 自定义加密规则\t242
10.2.5 配置多用户系统\t242
10.2.6 获取当前登录用户信息的几种方式\t244
10.3 实例36:用Spring Security实现后台登录及权限认证功能\t246
10.3.1 引入依赖\t246
10.3.2 创建权限开放的页面\t246
10.3.3 创建需要权限验证的页面\t247
10.3.4 配置Spring Security\t247
10.3.5 创建登录页面\t248
10.3.6 测试权限\t249
10.4 权限控制方式\t249
10.4.1 Spring EL权限表达式\t249
10.4.2 通过表达式控制URL权限\t250
10.4.3 通过表达式控制方法权限\t252
10.4.4 实例37:使用JSR-250注解\t254
10.4.5 实例38:实现RBAC权限模型\t256
10.5 认识JWT\t258
10.6 实例39:用JWT技术为Spring Boot
的API增加认证和授权保护\t260
10.6.1 配置安全类\t260
10.6.2 处理注册\t261
10.6.3 处理登录\t262
10.6.4 测试多方式注册和登录\t264
10.6.5 测试token方式登录和授权\t265
10.7 Shiro――Apache通用安全框架\t266
10.7.1 认识Shiro安全框架\t266
10.7.2 认识Shiro的核心组件\t267
10.8 实例40:用Shiro实现管理后台的动态权限功能\t267
10.8.1 创建实体\t267
10.8.2 实现视图模板\t270
10.8.3 进行权限配置\t271
10.8.4 实现认证身份功能\t271
10.8.5 测试权限\t272
10.9 对比Spring Security与Shiro\t273
第11章 在Spring Boot中使用Redis实现高并发\t275
11.1 认识Spring Cache\t275
11.1.1 声明式缓存注解\t276
11.1.2 实例41:用Cache进行缓存管理\t278
11.1.3 整合Ehcache\t281
11.1.4 整合Caffeine\t281
11.2 认识Redis\t282
11.2.1 对比Redis与Memcached\t282
11.2.2 Redis的适用场景\t285
11.3 Redis的数据类型\t285
11.4 用RedisTemplate操作Redis的5种数据类型\t287
11.4.1 认识opsFor方法\t287
11.4.2 实例42:操作字符串\t287
11.4.3 实例43:操作散列\t290
11.4.4 实例44:操作列表\t294
11.4.5 实例45:操作集合\t298
11.4.6 实例46:操作有序集合Zset\t301
11.4.7 比较RedisTemplate和StringRedisTemplate\t306
11.5 实例47:用Redis和MyBatis完成缓存数据的增加、删除、修改、查询功能\t306
11.5.1 在Spring Boot中集成Redis\t306
11.5.2 配置Redis类\t307
11.5.3 创建测试实体类\t308
11.5.4 实现实体和数据表的映射关系\t309
11.5.5 创建Redis缓存服务层\t309
11.5.6 完成增加、删除、修改和查询测试API\t310
11.6 实例48:用Redis和JPA实现缓存文章和点击量\t311
11.6.1 实现缓存文章\t311
11.6.2 实现统计点击量\t312
11.6.3 实现定时同步\t312
11.7 实例49:实现分布式Session\t313
11.7.1 用Redis实现Session共享\t313
11.7.2 配置Nginx实现负载均衡\t314
第12章 用RabbitMQ实现系统间的数据交换\t316
12.1 认识RabbitMQ\t316
12.1.1 介绍RabbitMQ\t316
12.1.2 使用场景\t317
12.1.3 特性\t318
12.2 RabbitMQ的基本概念\t318
12.2.1 生产者、消费者和代理\t318
12.2.2 消息队列\t319
12.2.3 交换机(Exchange)\t319
12.2.4 绑定\t320
12.2.5 通道\t321
12.2.6 消息确认\t321
12.3 RabbitMQ的六种工作模式\t321
12.3.1 简单模式\t321
12.3.2 工作队列模式\t321
12.3.3 交换机模式\t322
12.3.4 Routing转发模式\t322
12.3.5 主题转发模式\t322
12.3.6 RPC模式\t323
12.4 认识AmqpTemplate接口\t323
12.4.1 发送消息\t324
12.4.2 接收消息\t324
12.4.3 异步接收消息\t325
12.5 在Spring Boot中集成RabbitMQ\t325
12.5.1 安装RabbitMQ\t325
12.5.2 界面化管理RabbitMQ\t326
12.5.3 在Spring Boot中配置RabbitMQ\t327
12.6 在Spring Boot中实现RabbitMQ
的4种发送/接收模式\t328
12.6.1 实例50:实现发送和接收队列\t328
12.6.2 实例51:实现发送和接收对象\t330
12.6.3 实例52:实现用接收器接收多个主题\t331
12.6.4 实例53:实现广播模式\t334
12.7 实例54:实现消息队列延迟功能\t336
第13章 使用NoSQL数据库实现搜索引擎\t339
13.1 Elasticsearch――搜索应用服务器\t339
13.1.1 什么是搜索引擎\t339
13.1.2 用数据库实现搜索功能\t339
13.1.3 认识Elasticsearch\t343
13.1.4 Elasticsearch应用案例\t343
13.1.5 对比Elasticsearch与MySQL\t343
13.1.6 认识ElasticSearchRepository\t344
13.1.7 认识ElasticsearchTemplate\t345
13.1.8 认识注解@Document\t345
13.1.9 管理索引\t347
13.2 实例55:用ELK管理Spring Boot应用程序的日志\t348
13.2.1 安装Elasticsearch\t348
13.2.2 安装Logstash\t349
13.2.3 安装Kibana\t350
13.2.4 配置Spring Boot项目\t350
13.2.5 创建日志计划任务\t351
13.2.6 用Kibana查看管理日志\t352
13.3 实例56:在Spring Boot中实现增加、
删除、修改、查询 文档的功能\t353
13.3.1 集成Elasticsearch\t353
13.3.2 创建实体\t353
13.3.3 创建增加、删除、修改和查询API\t355
13.4 Elasticsearch查询\t356
13.4.1 自定义方法\t356
13.4.2 精准查询\t357
13.4.3 模糊查询\t359
13.4.4 范围查询\t362
13.4.5 组合查询\t362
13.4.6 分页查询\t363
13.4.7 聚合查询\t364
13.5 实例57:实现产品搜索引擎\t365
13.6 Solr――搜索应用服务器\t367
13.6.1 了解Solr\t367
13.6.2 安装配置Solr\t367
13.6.3 整合Spring Boot和Solr\t368
13.7 实例58:在Solr中实现数据的增加、删除、修改和查询\t369
13.7.1 创建User类\t369
13.7.2 测试增加、删除、修改和查询功能\t369
13.8 对比Elasticsearch和Solr\t372
项目实战篇
第14章 实例59:开发企业级通用的后台系统\t376
14.1 用JPA实现实体间映射关系\t376
14.1.1 创建用户实体\t376
14.1.2 创建角色实体\t377
14.1.3 创建权限实体\t378
14.2 用Spring Security实现动态授权(RBAC)功能\t380
14.2.1 实现管理(增加、删除、修改和
查询)管理员角色功能\t380
14.2.2 实现管理权限功能\t381
14.2.3 实现管理管理员功能\t383
14.2.4 配置安全类\t384
14.2.5 实现基于RBAC权限控制
功能\t386
14.3 监控Spring Boot应用\t387
14.3.1 在Spring Boot中集成Actuator\t387
14.3.2 在Spring Boot中集成Spring Boot admin应用监控\t390
14.3.3 在Spring Boot中集成Druid连接池监控\t392
第15章 实例60:实现一个类似“京东”的电子商务商城\t394
15.1 用Spring Security实现会员系统\t394
15.1.1 实现会员实体\t394
15.1.2 实现会员接口\t395
15.1.3 实现用户名、邮箱、手机号多方式注册功能\t396
15.1.4 实现用MQ发送会员注册验证邮件\t398
15.1.5 实现用户名、邮箱、手机号多方式登录功能\t399
15.2 整合会员系统(Web、APP多端多方式注册登录)+后台系统\t400
15.3 实现购物系统\t401
15.3.1 设计数据表\t401
15.3.2 实现商品展示功能\t402
15.3.3 实现购物车功能\t403
15.3.4 用Redis实现购物车数据持久化\t404
15.4 用Redis实现分布式秒杀系统\t406
15.4.1 实现抢购功能,解决并发超卖问题\t406
15.4.2 缓存页面和限流\t409
15.5 用RabbitMQ实现订单过期取消功能\t409
15.6 实现结算和支付功能\t411
15.6.1 实现结算生成订单功能\t411
15.6.2 集成支付\t412
猜您喜欢