主编推荐语
本书以企业应用开发为目标,全面讲述SpringBoot整合分布式组件进行全栈项目开发的实战技能。
内容简介
全书分为三部分。
第一部分(第1~9章)主要讲述SpringBoot的相关技能,包括搭建SpringBoot开发环境、SpringBoot框架基础、JPA操作数据库、面向切面编程、基于Thymeleaf和FreeMarker的全栈开发、拦截器和过滤器、RESTful规范定义服务、Swagger组件可视化服务、logback和ELK组件输出日志、基于SpringSecurity和Shiro的安全框架技术和基于Junit的单元测试技术。
第二部分(第10~15章)主要讲述SpringBoot整合诸多分布式组件的技术,包括整合MongoDB、Redis和MyCAT数据层组件、整合Dubbo和Zookeeper、整合RabbitMQ消息中间件和基于Nginx的分布式部署。
第三部分(第16和17章),第16章以前后端分离项目为例,给出了基于Vue的全栈开发技术,其中前端用到了Vue、Element-UI和Axios等组件,后端用到了Redis缓存组件和MyCAT分库组件;第17章通过高并发限流和秒杀项目讲述了Redis和RabbitMQ等分布式组件的用法。
本书是编者十余年一线Java项目开发经验的总结,重在解决实际开发中遇到的问题,特别适合具有Java基础和想学习SpringBoot项目开发的人员使用。由于本书各章还提供了练习题,因此也很适合用作培训机构和大专院校书的教学用书。
目录
- 版权信息
- 作者介绍
- 内容简介
- 前言
- 第1章 搭建Spring Boot开发环境
- 1.1 初识Spring Boot
- 1.1.1 Spring Boot是什么
- 1.1.2 Spring、Spring MVC和Spring Boot的关系
- 1.1.3 Spring Boot是SSM框架的升级版
- 1.2 搭建Spring Boot的开发环境
- 1.2.1 安装和配置JDK开发环境
- 1.2.2 安装IDEA集成开发环境
- 1.2.3 安装Maven工具
- 1.2.4 Maven工具与IDEA的集成
- 1.3 用Maven开发第一个Spring Boot项目
- 1.3.1 搭建基于Maven的Spring Boot项目
- 1.3.2 通过pom.xml文件引入依赖包
- 1.3.3 开发第一个Spring Boot项目
- 1.3.4 运行并观察效果
- 1.3.5 对Spring Boot项目的直观说明
- 1.4 思考与练习
- 第2章 Spring Boot编程基础
- 2.1 准备知识:什么是控制反转
- 2.1.1 以实例了解控制反转的做法
- 2.1.2 Bean与Spring容器
- 2.1.3 控制反转和依赖注入是一回事
- 2.2 Spring Boot项目的通用框架
- 2.3 开发Spring Boot启动类
- 2.3.1 对注解@SpringBootApplication的说明
- 2.3.2 配置热部署
- 2.3.3 通过Banner定制启动信息
- 2.3.4 关闭定制的启动界面
- 2.4 编写控制器类
- 2.4.1 用@Controller注解定义控制器类
- 2.4.2 用@RequestMapping映射请求
- 2.4.3 从请求中读取参数
- 2.4.4 用produces参数返回JSON格式的结果
- 2.5 编写业务逻辑类
- 2.5.1 用@Service注解编写业务处理类
- 2.5.2 在控制器类中调用业务逻辑类的方法
- 2.6 编写和读取配置文件
- 2.6.1 配置和读取.properties文件
- 2.6.2 配置和读取.yml文件
- 2.6.3 用@Value注解读取配置文件
- 2.6.4 在项目中用同一种风格读取配置文件
- 2.7 思考与练习
- 第3章 Spring Boot用JPA操作数据库
- 3.1 搭建MySQL环境
- 3.1.1 安装MySQL数据库和客户端
- 3.1.2 通过MySQL客户端创建数据库连接
- 3.1.3 通过MySQL客户端创建数据库
- 3.1.4 在数据库中创建数据表
- 3.1.5 向数据表中插入若干数据
- 3.2 ORM概念与JPA组件
- 3.2.1 通过ORM分离业务和数据库操作
- 3.2.2 JPA组件是ORM的解决方案
- 3.2.3 JPA组件的常用接口和实现类
- 3.3 通过JpaRepository访问数据库
- 3.3.1 创建项目,引入JPA依赖包
- 3.3.2 确认MySQL数据环境
- 3.3.3 编写业务实体类
- 3.3.4 编写JPA的配置文件
- 3.3.5 用JpaRepository编写Repo类
- 3.3.6 编写控制器类和业务逻辑类
- 3.3.7 运行观察增删改查的效果
- 3.4 实现分页和排序的JPA接口
- 3.4.1 用PagingAndSortingRepository实现排序和分页
- 3.4.2 对排序和分页对象的说明
- 3.5 深入了解JPA查询数据的方式
- 3.5.1 JPA从方法名中解析数据库操作的方式
- 3.5.2 用@Query查询数据
- 3.5.3 用nativeQuery参数运行原生SQL语句
- 3.6 通过JPA组件引入事务
- 3.6.1 “要么全都做,要么全都不做”的事务
- 3.6.2 用@Transactional注解管理事务
- 3.6.3 定义事务隔离级别
- 3.6.4 定义事务传播机制
- 3.6.5 @transactional注解使用建议
- 3.7 思考与练习
- 第4章 Spring Boot整合前端模板
- 4.1 Thymeleaf模板与前后端交互
- 4.1.1 用于前后端交互的ModelAndView对象
- 4.1.2 Spring Boot与Thymeleaf整合的范例
- 4.1.3 用Thymeleaf循环展示数据
- 4.1.4 用Thymeleaf进行条件判断
- 4.2 Spring Boot、JPA整合Thymeleaf
- 4.2.1 创建项目并准备数据环境
- 4.2.2 通过JPA获取数据并传给前端
- 4.2.3 用Thymeleaf模板演示分页效果
- 4.3 Spring Boot整合FreeMarker
- 4.3.1 Spring Boot整合FreeMarker的简单范例
- 4.3.2 用FreeMarker模板展示分页效果
- 4.4 思考与练习
- 第5章 面向切面编程与过滤器拦截器
- 5.1 面向切面的概念和做法
- 5.1.1 相关概念
- 5.1.2 用范例了解面向切面编程
- 5.1.3 环绕通知与拦截器
- 5.2 Spring Boot与拦截器
- 5.2.1 拦截器的重要方法
- 5.2.2 Spring Boot整合多个拦截器
- 5.2.3 从拦截器的运行效果观察执行顺序
- 5.3 Spring Boot与过滤器
- 5.3.1 过滤器的3个重要方法
- 5.3.2 Spring Boot整合多个过滤器
- 5.3.3 从运行效果观察过滤器的执行顺序
- 5.3.4 过滤器和拦截器的异同点
- 5.4 思考与练习
- 第6章 用RESTful规范提供统一风格的服务
- 6.1 RESTful规范与模块间的通信
- 6.1.1 URL请求、HTTP动作与返回码
- 6.1.2 什么是RESTful
- 6.1.3 增删改查方法对应的RESTful接口名
- 6.1.4 调用不同版本的请求
- 6.2 用RESTful统一项目的对外服务风格
- 6.2.1 创建项目
- 6.2.2 定义pom.xml,编写启动类
- 6.2.3 统一返回结果的格式
- 6.2.4 在控制器类中定义增删改查方法
- 6.2.5 全局性异常处理机制
- 6.3 用RestTemplate调用RESTful请求
- 6.3.1 RestTemplate对象重要方法说明
- 6.3.2 用RestTemplate发起POST请求
- 6.3.3 用RestTemplate发起GET请求
- 6.3.4 观察异常处理的结果
- 6.3.5 用RestTemplate发起PUT请求
- 6.3.6 用RestTemplate发起DELETE请求
- 6.4 用Swagger可视化RESTful请求
- 6.4.1 Swagger能解决哪些问题
- 6.4.2 用Swagger可视化RESTful请求
- 6.4.3 演示运行效果
- 6.5 思考与练习
- 第7章 Spring Boot整合日志组件
- 7.1 Spring Boot整合logback输出日志
- 7.1.1 Spring Boot整合logback的范例项目
- 7.1.2 用不同级别的日志输出不同种类的信息
- 7.1.3 为每个线程设置唯一标识,方便追踪问题
- 7.1.4 格式化日志文件名,方便排查问题
- 7.2 搭建ELK组件开发环境
- 7.2.1 ELK组件与工作示意图
- 7.2.2 搭建ELK运行环境
- 7.3 Spring Boot整合ELK平台
- 7.3.1 Spring Boot向ELK输出日志
- 7.3.2 在Kibana中观察日志
- 7.4 思考与练习
- 第8章 Spring Boot整合Junit单元测试组件
- 8.1 了解单元测试
- 8.1.1 单元测试的目的及难点分析
- 8.1.2 Junit组件简介
- 8.1.3 单元测试同其他测试的关系
- 8.2 对待测试项目的分析
- 8.2.1 构建待测试的项目
- 8.2.2 测试要点分析
- 8.3 Spring Boot整合Junit
- 8.3.1 引入Junit依赖包
- 8.3.2 测试控制器方法
- 8.3.3 测试业务处理方法
- 8.3.4 测试数据访问方法
- 8.4 思考与练习
- 第9章 Spring Boot集成安全管理框架
- 9.1 安全管理与Spring Security框架
- 9.1.1 安全管理需求点分析
- 9.1.2 Spring Security框架介绍
- 9.2 Spring Boot整合Spring Security
- 9.2.1 引入依赖包,编写启动类和控制类
- 9.2.2 观察身份验证效果
- 9.2.3 在配置文件中管理登录信息
- 9.2.4 以配置类的方式管理登录信息
- 9.2.5 基于角色的权限管理
- 9.3 基于数据库的安全管理框架
- 9.3.1 准备数据
- 9.3.2 创建项目,编写pom.xml
- 9.3.3 编写数据库配置文件
- 9.3.4 从数据库中获取安全信息
- 9.4 Spring Boot整合Shiro框架
- 9.4.1 Shiro框架概述
- 9.4.2 Spring Boot整合Shiro框架的范例说明
- 9.4.3 编写pom.xml文件和启动类
- 9.4.4 编写控制器类
- 9.4.5 编写Shiro相关类
- 9.4.6 编写登录等前端代码
- 9.4.7 观察基于Shiro的安全验证流程
- 9.5 思考与练习
- 第10章 Spring Boot整合MongoDB数据库
- 10.1 了解MongoDB
- 10.1.1 MongoDB概述
- 10.1.2 MongoDB的优缺点
- 10.1.3 安装MongoDB数据库
- 10.2 使用MongoDB
- 10.2.1 创建数据库和数据表
- 10.2.2 操作数据表的数据
- 10.3 Spring Boot整合MongoDB
- 10.3.1 项目和数据库的说明
- 10.3.2 编写pom文件、启动类和配置文件
- 10.3.3 编写业务模型类
- 10.3.4 通过MongoTemplate操作MongoDB
- 10.3.5 通过JPA操作MongoDB
- 10.3.6 观察运行结果
- 10.4 思考与练习
- 第11章 Spring Boot整合Redis缓存
- 11.1 了解Redis
- 11.1.1 Redis概述
- 11.1.2 Redis的优缺点
- 11.1.3 搭建Redis数据库环境
- 11.1.4 Redis服务器和客户端
- 11.2 Redis常用命令
- 11.2.1 set和get命令
- 11.2.2 del命令
- 11.2.3 exists命令
- 11.3 Redis基本数据类型
- 11.3.1 字符串类型
- 11.3.2 Hash类型
- 11.3.3 列表类型
- 11.3.4 集合类型
- 11.3.5 有序集合类型
- 11.4 Spring Boot整合Redis
- 11.4.1 项目说明
- 11.4.2 引入依赖包
- 11.4.3 编写配置文件和启动类
- 11.4.4 编写控制器类和业务模型类
- 11.4.5 编写业务逻辑类
- 11.4.6 编写与Redis交互的类
- 11.4.7 观察和Redis整合的效果
- 11.5 Spring Boot整合数据库与Redis缓存
- 11.5.1 数据库整合缓存的说明
- 11.5.2 防缓存穿透的设计
- 11.5.3 防内存溢出的设计
- 11.5.4 整合数据库和缓存的项目
- 11.5.5 观察MySQL和Redis的整合效果
- 11.6 思考与练习
- 第12章 Spring Boot整合MyCAT分库组件
- 12.1 MyCAT分库组件概述
- 12.1.1 分库需求与MyCAT组件
- 12.1.2 MyCAT组件的重要配置文件
- 12.1.3 下载MyCAT组件
- 12.2 MyCAT整合MySQL实现分库效果
- 12.2.1 分库效果框架图
- 12.2.2 用MyCAT实现分库效果
- 12.2.3 观察分库效果
- 12.3 Spring Boot整合MyCAT组件
- 12.3.1 通过pom.xml文件引入依赖包
- 12.3.2 编写配置文件
- 12.3.3 实现整合效果
- 12.3.4 观察分库效果
- 12.4 Spring Boot整合Redis与MyCAT组件
- 12.4.1 整合后的数据服务架构
- 12.4.2 实现整合效果
- 12.4.3 观察整合效果
- 12.5 思考与练习
- 第13章 Spring Boot整合Dubbo和Zookeeper组件
- 13.1 Zookeeper和Dubbo框架概述
- 13.1.1 远端方法调用和Dubbo组件
- 13.1.2 Dubbo注册中心与Zookeeper组件
- 13.1.3 下载并配置Zookeeper组件
- 13.2 搭建基于Dubbo的服务提供者
- 13.2.1 编写pom.xml和启动类
- 13.2.2 编写配置文件
- 13.2.3 编写服务接口和服务类
- 13.2.4 关于超时时间说明
- 13.2.5 关于重试次数的说明
- 13.3 编写调用Dubbo服务的项目
- 13.3.1 编写配置文件
- 13.3.2 重写Dubbo服务方法的接口
- 13.3.3 通过@Reference注解调用方法
- 13.3.4 观察Dubbo调用的效果
- 13.4 思考与练习
- 第14章 Spring Boot整合RabbitMQ消息中间件
- 14.1 RabbitMQ概述
- 14.1.1 消息队列和RabbitMQ消息中间件
- 14.1.2 消息交换机与消息队列
- 14.1.3 搭建RabbitMQ工作环境
- 14.2 Spring Boot整合RabbitMQ
- 14.2.1 项目概述
- 14.2.2 编写pom.xml和启动类
- 14.2.3 编写配置文件
- 14.2.4 编写待传输的对象类
- 14.2.5 编写消息交换机和消息队列的配置类
- 14.2.6 发送String和对象型的消息
- 14.2.7 观察接收String消息的效果
- 14.2.8 观察接收对象类消息的效果
- 14.3 用RabbitMQ搭建异步交互系统
- 14.3.1 异步系统概述
- 14.3.2 包含RabbitMQ的服务调用者
- 14.3.3 包含RabbitMQ的服务提供者
- 14.3.4 观察异步交互流程
- 14.4 思考与练习
- 第15章 项目打包、分布式部署和监控
- 15.1 打包和运行Spring Boot项目
- 15.1.1 用Maven命令打包
- 15.1.2 用Java命令启动项目
- 15.2 基于Nginx的分布式部署
- 15.2.1 Nginx组件与分布式负载均衡
- 15.2.2 下载Nginx组件
- 15.2.3 实践分布式部署Spring Boot项目
- 15.3 监控Spring Boot项目
- 15.3.1 引入依赖包,监控端点
- 15.3.2 配置监控项
- 15.3.3 可视化监控并邮件告警
- 15.4 思考与练习
- 第16章 Spring Boot+Vue前后端分离项目的开发
- 16.1 项目概述
- 16.1.1 演示增删改查订单效果
- 16.1.2 后端项目说明
- 16.1.3 前端框架和组件分析
- 16.2 后端Spring Boot项目实践要点
- 16.2.1 application.yml配置文件
- 16.2.2 跨域问题与CORS解决方法
- 16.2.3 控制器层对外提供的服务方法
- 16.3 搭建前端Vue项目框架
- 16.3.1 安装Node.js和Visual Studio Code
- 16.3.2 创建前端Vue项目
- 16.3.3 引入Element-ui和Axios组件
- 16.4 开发前端页面
- 16.4.1 前端重要文件的说明
- 16.4.2 在首页添加诸多组件
- 16.4.3 定义路由效果
- 16.4.4 分页展示订单
- 16.4.5 修改订单页面
- 16.4.6 添加订单页面
- 16.5 观察项目的运行效果
- 16.5.1 启动前后端项目
- 16.5.2 展示订单和删除订单
- 16.5.3 修改订单
- 16.5.4 添加订单
- 16.6 思考与练习
- 第17章 Spring+Redis+RabbitMQ限流和秒杀项目的开发
- 17.1 项目概述
- 17.2 基于Redis的Lua脚本分析
- 17.2.1 Lua脚本的特性
- 17.2.2 在Redis中引入Lua脚本
- 17.2.3 Lua脚本的返回值和参数
- 17.2.4 分支语句
- 17.3 实现限流和秒杀功能
- 17.3.1 创建项目并编写配置文件
- 17.3.2 编写启动类和控制器类
- 17.3.3 消息队列的相关配置
- 17.3.4 实现秒杀功能的Lua脚本
- 17.3.5 在实现业务实现类中实现限流和秒杀
- 17.3.6 观察秒杀效果
- 17.4 以异步方式保存秒杀结果
- 17.4.1 创建项目并设计数据表
- 17.4.2 配置消息队列和数据库参数
- 17.4.3 监听消息队列并保存秒杀结果
- 17.4.4 全链路效果演示
- 17.5 思考与练习
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。