内容简介 · · · · · ·
本书以企业应用开发为目标,全面讲述Spring Boot整合分布式组件进行全栈项目开发的实战技能。全书分为三部分。第一部分(第1~9章)主要讲述Spring Boot的相关技能,包括搭建Spring Boot开发环境、Spring Boot框架基础、JPA操作数据库、面向切面编程、基于Thymeleaf和FreeMarker的全栈开发、拦截器和过滤器、RESTful规范定义服务、Swagger组件可视化服务、logback和ELK组件输出日志、基于Spring Security和Shiro的安全框架技术和基于Junit的单元测试技术。第二部分(第10~15章)主要讲述Spring Boot整合诸多分布式组件的技术,包括整合MongoDB、Redis和MyCAT数据层组件、整合Dubbo和Zookeeper、整合RabbitMQ消息中间件和基于Ngin...
本书以企业应用开发为目标,全面讲述Spring Boot整合分布式组件进行全栈项目开发的实战技能。全书分为三部分。第一部分(第1~9章)主要讲述Spring Boot的相关技能,包括搭建Spring Boot开发环境、Spring Boot框架基础、JPA操作数据库、面向切面编程、基于Thymeleaf和FreeMarker的全栈开发、拦截器和过滤器、RESTful规范定义服务、Swagger组件可视化服务、logback和ELK组件输出日志、基于Spring Security和Shiro的安全框架技术和基于Junit的单元测试技术。第二部分(第10~15章)主要讲述Spring Boot整合诸多分布式组件的技术,包括整合MongoDB、Redis和MyCAT数据层组件、整合Dubbo和Zookeeper、整合RabbitMQ消息中间件和基于Nginx的分布式部署。第三部分(第16和17章),第16章以前后端分离项目为例,给出了基于Vue的全栈开发技术,其中前端用到了Vue、Element-UI和Axios等组件,后端用到了Redis缓存组件和MyCAT分库组件;第17章通过高并发限流和秒杀项目讲述了Redis和RabbitMQ等分布式组件的用法。
本书是编者十余年一线Java项目开发经验的总结,重在解决实际开发中遇到的问题,特别适合具有Java基础和想学习Spring Boot项目开发的人员使用。由于本书各章还提供了练习题,因此也很适合用作培训机构和大专院校书的教学用书。
作者简介 · · · · · ·
曹宇,副教授,从事高校教育工作17年,主要研究领域为计算机应用技术,主讲Java编程课程多年,主导开发了EPC企业专利信息协同平台、大宗商品信息管理系统等多个项目,公开发表了《基于蒙太古语义学和受控自然语言的文献信息系统的实现》《基于JSON、JavaScript、HTML5和前端存储技术的均衡运算框架研究》《基于UWB的ROS机器人室内定位系统设计》等论文数十篇。
胡书敏,大连理工大学计算机硕士,有15年Java开发经验,资深Java架构师,目前在SAP从事Java开发工作,有平安、花旗和IBM等大厂的工作经验,同时还有近8年Java技术面试官的经验。出版过《Java Web轻量级开发面试教程》《Java核心技术及面试指南》《Spring Cloud实战》等技术图书。
目录 · · · · · ·
1.1 初识Spring Boot 1
1.1.1 Spring Boot是什么 1
1.1.2 Spring、Spring MVC和Spring Boot的关系 1
1.1.3 Spring Boot是SSM框架的升级版 2
1.2 搭建Spring Boot的开发环境 3
· · · · · · (更多)
1.1 初识Spring Boot 1
1.1.1 Spring Boot是什么 1
1.1.2 Spring、Spring MVC和Spring Boot的关系 1
1.1.3 Spring Boot是SSM框架的升级版 2
1.2 搭建Spring Boot的开发环境 3
1.2.1 安装和配置JDK开发环境 3
1.2.2 安装IDEA集成开发环境 5
1.2.3 安装Maven工具 5
1.2.4 Maven工具与IDEA的集成 6
1.3 用Maven开发第一个Spring Boot项目 8
1.3.1 搭建基于Maven的Spring Boot项目 8
1.3.2 通过pom.xml文件引入依赖包 9
1.3.3 开发第一个Spring Boot项目 11
1.3.4 运行并观察效果 12
1.3.5 对Spring Boot项目的直观说明 13
1.4 思考与练习 13
第2章 Spring Boot编程基础 15
2.1 准备知识:什么是控制反转 15
2.1.1 以实例了解控制反转的做法 15
2.1.2 Bean与Spring容器 17
2.1.3 控制反转和依赖注入是一回事 17
2.2 Spring Boot项目的通用框架 18
2.3 开发Spring Boot启动类 19
2.3.1 对注解@SpringBootApplication的说明 19
2.3.2 配置热部署 20
2.3.3 通过Banner定制启动信息 21
2.3.4 关闭定制的启动界面 22
2.4 编写控制器类 22
2.4.1 用@Controller注解定义控制器类 22
2.4.2 用@RequestMapping映射请求 24
2.4.3 从请求中读取参数 26
2.4.4 用produces参数返回JSON格式的结果 27
2.5 编写业务逻辑类 28
2.5.1 用@Service注解编写业务处理类 28
2.5.2 在控制器类中调用业务逻辑类的方法 29
2.6 编写和读取配置文件 30
2.6.1 配置和读取.properties文件 30
2.6.2 配置和读取.yml文件 31
2.6.3 用@Value注解读取配置文件 32
2.6.4 在项目中用同一种风格读取配置文件 33
2.7 思考与练习 33
第3章 Spring Boot用JPA操作数据库 35
3.1 搭建MySQL环境 35
3.1.1 安装MySQL数据库和客户端 35
3.1.2 通过MySQL客户端创建数据库连接 36
3.1.3 通过MySQL客户端创建数据库 38
3.1.4 在数据库中创建数据表 39
3.1.5 向数据表中插入若干数据 39
3.2 ORM概念与JPA组件 40
3.2.1 通过ORM分离业务和数据库操作 40
3.2.2 JPA组件是ORM的解决方案 41
3.2.3 JPA组件的常用接口和实现类 41
3.3 通过JpaRepository访问数据库 42
3.3.1 创建项目,引入JPA依赖包 42
3.3.2 确认MySQL数据环境 43
3.3.3 编写业务实体类 43
3.3.4 编写JPA的配置文件 44
3.3.5 用JpaRepository编写Repo类 45
3.3.6 编写控制器类和业务逻辑类 46
3.3.7 运行观察增删改查的效果 48
3.4 实现分页和排序的JPA接口 49
3.4.1 用PagingAndSortingRepository实现排序和分页 49
3.4.2 对排序和分页对象的说明 51
3.5 深入了解JPA查询数据的方式 52
3.5.1 JPA从方法名中解析数据库操作的方式 52
3.5.2 用@Query查询数据 53
3.5.3 用nativeQuery参数运行原生SQL语句 53
3.6 通过JPA组件引入事务 54
3.6.1 “要么全都做,要么全都不做”的事务 54
3.6.2 用@Transactional注解管理事务 54
3.6.3 定义事务隔离级别 56
3.6.4 定义事务传播机制 57
3.6.5 @transactional注解使用建议 58
3.7 思考与练习 59
第4章 Spring Boot整合前端模板 60
4.1 Thymeleaf模板与前后端交互 60
4.1.1 用于前后端交互的ModelAndView对象 60
4.1.2 Spring Boot与Thymeleaf整合的范例 61
4.1.3 用Thymeleaf循环展示数据 64
4.1.4 用Thymeleaf进行条件判断 66
4.2 Spring Boot、JPA整合Thymeleaf 67
4.2.1 创建项目并准备数据环境 67
4.2.2 通过JPA获取数据并传给前端 68
4.2.3 用Thymeleaf模板演示分页效果 71
4.3 Spring Boot整合FreeMarker 74
4.3.1 Spring Boot整合FreeMarker的简单范例 74
4.3.2 用FreeMarker模板展示分页效果 76
4.4 思考与练习 79
第5章 面向切面编程与过滤器拦截器 80
5.1 面向切面的概念和做法 80
5.1.1 相关概念 80
5.1.2 用范例了解面向切面编程 81
5.1.3 环绕通知与拦截器 85
5.2 Spring Boot与拦截器 85
5.2.1 拦截器的重要方法 85
5.2.2 Spring Boot整合多个拦截器 86
5.2.3 从拦截器的运行效果观察执行顺序 90
5.3 Spring Boot与过滤器 90
5.3.1 过滤器的3个重要方法 90
5.3.2 Spring Boot整合多个过滤器 91
5.3.3 从运行效果观察过滤器的执行顺序 94
5.3.4 过滤器和拦截器的异同点 94
5.4 思考与练习 95
第6章 用RESTful规范提供统一风格的服务 96
6.1 RESTful规范与模块间的通信 96
6.1.1 URL请求、HTTP动作与返回码 96
6.1.2 什么是RESTful 97
6.1.3 增删改查方法对应的RESTful接口名 98
6.1.4 调用不同版本的请求 98
6.2 用RESTful统一项目的对外服务风格 99
6.2.1 创建项目 99
6.2.2 定义pom.xml,编写启动类 100
6.2.3 统一返回结果的格式 100
6.2.4 在控制器类中定义增删改查方法 102
6.2.5 全局性异常处理机制 104
6.3 用RestTemplate调用RESTful请求 105
6.3.1 RestTemplate对象重要方法说明 106
6.3.2 用RestTemplate发起POST请求 106
6.3.3 用RestTemplate发起GET请求 107
6.3.4 观察异常处理的结果 108
6.3.5 用RestTemplate发起PUT请求 109
6.3.6 用RestTemplate发起DELETE请求 109
6.4 用Swagger可视化RESTful请求 110
6.4.1 Swagger能解决哪些问题 110
6.4.2 用Swagger可视化RESTful请求 110
6.4.3 演示运行效果 112
6.5 思考与练习 114
第7章 Spring Boot整合日志组件 116
7.1 Spring Boot整合logback输出日志 116
7.1.1 Spring Boot整合logback的范例项目 116
7.1.2 用不同级别的日志输出不同种类的信息 120
7.1.3 为每个线程设置唯一标识,方便追踪问题 121
7.1.4 格式化日志文件名,方便排查问题 122
7.2 搭建ELK组件开发环境 122
7.2.1 ELK组件与工作示意图 123
7.2.2 搭建ELK运行环境 123
7.3 Spring Boot整合ELK平台 126
7.3.1 Spring Boot向ELK输出日志 126
7.3.2 在Kibana中观察日志 127
7.4 思考与练习 129
第8章 Spring Boot整合Junit单元测试组件 131
8.1 了解单元测试 131
8.1.1 单元测试的目的及难点分析 131
8.1.2 Junit组件简介 132
8.1.3 单元测试同其他测试的关系 132
8.2 对待测试项目的分析 133
8.2.1 构建待测试的项目 133
8.2.2 测试要点分析 134
8.3 Spring Boot整合Junit 135
8.3.1 引入Junit依赖包 135
8.3.2 测试控制器方法 135
8.3.3 测试业务处理方法 138
8.3.4 测试数据访问方法 140
8.4 思考与练习 141
第9章 Spring Boot集成安全管理框架 143
9.1 安全管理与Spring Security框架 143
9.1.1 安全管理需求点分析 143
9.1.2 Spring Security框架介绍 144
9.2 Spring Boot整合Spring Security 144
9.2.1 引入依赖包,编写启动类和控制类 144
9.2.2 观察身份验证效果 145
9.2.3 在配置文件中管理登录信息 146
9.2.4 以配置类的方式管理登录信息 146
9.2.5 基于角色的权限管理 147
9.3 基于数据库的安全管理框架 149
9.3.1 准备数据 149
9.3.2 创建项目,编写pom.xml 151
9.3.3 编写数据库配置文件 152
9.3.4 从数据库中获取安全信息 152
9.4 Spring Boot整合Shiro框架 153
9.4.1 Shiro框架概述 153
9.4.2 Spring Boot整合Shiro框架的范例说明 154
9.4.3 编写pom.xml文件和启动类 154
9.4.4 编写控制器类 155
9.4.5 编写Shiro相关类 156
9.4.6 编写登录等前端代码 159
9.4.7 观察基于Shiro的安全验证流程 160
9.5 思考与练习 161
第10章 Spring Boot整合MongoDB数据库 163
10.1 了解MongoDB 163
10.1.1 MongoDB概述 163
10.1.2 MongoDB的优缺点 164
10.1.3 安装MongoDB数据库 164
10.2 使用MongoDB 165
10.2.1 创建数据库和数据表 165
10.2.2 操作数据表的数据 166
10.3 Spring Boot整合MongoDB 167
10.3.1 项目和数据库的说明 167
10.3.2 编写pom文件、启动类和配置文件 167
10.3.3 编写业务模型类 168
10.3.4 通过MongoTemplate操作MongoDB 169
10.3.5 通过JPA操作MongoDB 171
10.3.6 观察运行结果 172
10.4 思考与练习 173
第11章 Spring Boot整合Redis缓存 174
11.1 了解Redis 174
11.1.1 Redis概述 174
11.1.2 Redis的优缺点 175
11.1.3 搭建Redis数据库环境 175
11.1.4 Redis服务器和客户端 176
11.2 Redis常用命令 176
11.2.1 set和get命令 176
11.2.2 del命令 177
11.2.3 exists命令 177
11.3 Redis基本数据类型 178
11.3.1 字符串类型 178
11.3.2 Hash类型 178
11.3.3 列表类型 179
11.3.4 集合类型 180
11.3.5 有序集合类型 180
11.4 Spring Boot整合Redis 181
11.4.1 项目说明 181
11.4.2 引入依赖包 182
11.4.3 编写配置文件和启动类 182
11.4.4 编写控制器类和业务模型类 183
11.4.5 编写业务逻辑类 184
11.4.6 编写与Redis交互的类 185
11.4.7 观察和Redis整合的效果 186
11.5 Spring Boot整合数据库与Redis缓存 186
11.5.1 数据库整合缓存的说明 186
11.5.2 防缓存穿透的设计 187
11.5.3 防内存溢出的设计 187
11.5.4 整合数据库和缓存的项目 188
11.5.5 观察MySQL和Redis的整合效果 193
11.6 思考与练习 194
第12章 Spring Boot整合MyCAT分库组件 196
12.1 MyCAT分库组件概述 196
12.1.1 分库需求与MyCAT组件 196
12.1.2 MyCAT组件的重要配置文件 197
12.1.3 下载MyCAT组件 198
12.2 MyCAT整合MySQL实现分库效果 198
12.2.1 分库效果框架图 199
12.2.2 用MyCAT实现分库效果 199
12.2.3 观察分库效果 202
12.3 Spring Boot整合MyCAT组件 202
12.3.1 通过pom.xml文件引入依赖包 202
12.3.2 编写配置文件 203
12.3.3 实现整合效果 203
12.3.4 观察分库效果 205
12.4 Spring Boot整合Redis与MyCAT组件 206
12.4.1 整合后的数据服务架构 206
12.4.2 实现整合效果 206
12.4.3 观察整合效果 210
12.5 思考与练习 211
第13章 Spring Boot整合Dubbo和Zookeeper组件 213
13.1 Zookeeper和Dubbo框架概述 213
13.1.1 远端方法调用和Dubbo组件 213
13.1.2 Dubbo注册中心与Zookeeper组件 214
13.1.3 下载并配置Zookeeper组件 215
13.2 搭建基于Dubbo的服务提供者 215
13.2.1 编写pom.xml和启动类 216
13.2.2 编写配置文件 217
13.2.3 编写服务接口和服务类 217
13.2.4 关于超时时间说明 218
13.2.5 关于重试次数的说明 218
13.3 编写调用Dubbo服务的项目 219
13.3.1 编写配置文件 219
13.3.2 重写Dubbo服务方法的接口 219
13.3.3 通过@Reference注解调用方法 219
13.3.4 观察Dubbo调用的效果 220
13.4 思考与练习 221
第14章 Spring Boot整合RabbitMQ消息中间件 222
14.1 RabbitMQ概述 222
14.1.1 消息队列和RabbitMQ消息中间件 222
14.1.2 消息交换机与消息队列 223
14.1.3 搭建RabbitMQ工作环境 223
14.2 Spring Boot整合RabbitMQ 224
14.2.1 项目概述 224
14.2.2 编写pom.xml和启动类 225
14.2.3 编写配置文件 225
14.2.4 编写待传输的对象类 225
14.2.5 编写消息交换机和消息队列的配置类 226
14.2.6 发送String和对象型的消息 227
14.2.7 观察接收String消息的效果 228
14.2.8 观察接收对象类消息的效果 229
14.3 用RabbitMQ搭建异步交互系统 229
14.3.1 异步系统概述 230
14.3.2 包含RabbitMQ的服务调用者 230
14.3.3 包含RabbitMQ的服务提供者 233
14.3.4 观察异步交互流程 234
14.4 思考与练习 235
第15章 项目打包、分布式部署和监控 236
15.1 打包和运行Spring Boot项目 236
15.1.1 用Maven命令打包 236
15.1.2 用Java命令启动项目 238
15.2 基于Nginx的分布式部署 239
15.2.1 Nginx组件与分布式负载均衡 239
15.2.2 下载Nginx组件 239
15.2.3 实践分布式部署Spring Boot项目 240
15.3 监控Spring Boot项目 242
15.3.1 引入依赖包,监控端点 242
15.3.2 配置监控项 243
15.3.3 可视化监控并邮件告警 244
15.4 思考与练习 247
第16章 Spring Boot+Vue前后端分离项目的开发 249
16.1 项目概述 249
16.1.1 演示增删改查订单效果 249
16.1.2 后端项目说明 250
16.1.3 前端框架和组件分析 251
16.2 后端Spring Boot项目实践要点 252
16.2.1 application.yml配置文件 252
16.2.2 跨域问题与CORS解决方法 253
16.2.3 控制器层对外提供的服务方法 253
16.3 搭建前端Vue项目框架 255
16.3.1 安装Node.js和Visual Studio Code 255
16.3.2 创建前端Vue项目 255
16.3.3 引入Element-ui和Axios组件 256
16.4 开发前端页面 256
16.4.1 前端重要文件的说明 256
16.4.2 在首页添加诸多组件 257
16.4.3 定义路由效果 258
16.4.4 分页展示订单 259
16.4.5 修改订单页面 262
16.4.6 添加订单页面 264
16.5 观察项目的运行效果 265
16.5.1 启动前后端项目 266
16.5.2 展示订单和删除订单 266
16.5.3 修改订单 267
16.5.4 添加订单 267
16.6 思考与练习 267
第17章 Spring+Redis+RabbitMQ限流和秒杀项目的开发 269
17.1 项目概述 269
17.2 基于Redis的Lua脚本分析 270
17.2.1 Lua脚本的特性 270
17.2.2 在Redis中引入Lua脚本 270
17.2.3 Lua脚本的返回值和参数 271
17.2.4 分支语句 272
17.3 实现限流和秒杀功能 272
17.3.1 创建项目并编写配置文件 272
17.3.2 编写启动类和控制器类 273
17.3.3 消息队列的相关配置 275
17.3.4 实现秒杀功能的Lua脚本 275
17.3.5 在实现业务实现类中实现限流和秒杀 276
17.3.6 观察秒杀效果 278
17.4 以异步方式保存秒杀结果 278
17.4.1 创建项目并设计数据表 279
17.4.2 配置消息队列和数据库参数 279
17.4.3 监听消息队列并保存秒杀结果 281
17.4.4 全链路效果演示 282
17.5 思考与练习 283
· · · · · · (收起)
Spring Boot+Vue.js+分布式组件全栈开发训练营(视频教学版)的书评 · · · · · · ( 全部 0 条 )
论坛 · · · · · ·
Spring boot 全栈训练营好书 | 来自老王 | 2021-11-16 11:16:31 |
以下书单推荐 · · · · · · ( 全部 )
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有17人想读,手里有一本闲着?
订阅关于Spring Boot+Vue.js+分布式组件全栈开发训练营(视频教学版)的评论:
feed: rss 2.0
0 有用 serge 2022-02-13 21:57:12
还不错的工程类泛读书籍,大致把主流分布式组件的知识做了阐述,整体内容偏基本,每块的内容仍需在实践中详细学习
0 有用 kayoko 2022-11-23 22:35:49 江苏
挺好的
0 有用 老王 2021-11-16 11:10:36
实战好书
0 有用 kayoko 2022-11-23 22:35:49 江苏
挺好的
0 有用 serge 2022-02-13 21:57:12
还不错的工程类泛读书籍,大致把主流分布式组件的知识做了阐述,整体内容偏基本,每块的内容仍需在实践中详细学习
0 有用 老王 2021-11-16 11:10:36
实战好书