Spring Boot+Vue.js+分布式组件全栈开发训练营(视频教学版)
定 价:¥69
中 教 价:¥40.71 (5.90折)促销
库 存 数: 7
本书以企业应用开发为目标,全面讲述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项目开发的人员使用。由于本书各章还提供了练习题,因此也很适合用作培训机构和大专院校书的教学用书。
Spring Boot已成为众多软件公司开发项目的技能,如BATJ大厂及很多互联网公司都在使用该技术进行企业应用开发,因此很多Java程序员都在学习Spring Boot开发的相关技能。然而,大多数学习Spring Boot的初学者并不了解该学哪些知识体系,以及应该学到什么程度,甚至很多人虽然投入了大量时间,由于没有抓住要点,或者缺乏企业项目演练,技能提升的效果并不明显。本书正是基于上述考虑精心编写的。本书由两位具有十余年Java开发经验的资深开发工程师编写,目标是让读者通过本书的学习真正掌握Spring Boot开发企业项目的技能。
Spring Boot已成为众多软件公司开发项目的技术,如BATJ大厂及很多待遇好的互联网公司都在使用该技术进行应用开发,因此很多在校生和拥有一到两年工作经验的Java程序员都在学习Spring Boot开发的相关技术。然而,大多数学习Spring Boot的初学者并不了解该学哪些知识体系,以及应该学到什么程度,甚至很多人虽然投入了大量时间,由于没有抓住要点,或者缺乏企业项目演练,技能提升也就无从谈起了。本书围绕项目开发的普遍需求全面讲述Spring Boot的相关技术,包括整合数据库的开发技术和整合前端的全栈开发技术,介绍了整合分布式组件的开发技术以及热点的企业级项目,以使读者真正掌握实用开发技能,拥有项目上手能力。本书的内容介绍本书的核心内容分为三部分,各部分说明如下:部分(第1~9章)主要讲述Spring Boot的相关技能,内容包括搭建Spring Boot开发环境、Spring Boot基本框架、通过JPA操作数据库技术、面向切面编程技术、基于Thymeleaf和FreeMarker的全栈开发技术、拦截器和过滤器开发技术、通过RESTful规范定义服务技术、通过Swagger组件可视化服务技术、通过logback和ELK组件输出日志技术、基于Spring Security和Shiro的安全框架技术和基于Junit的单元测试技术。通过本部分的学习,读者能够掌握Spring Boot开发环境的搭建以及构建项目的基础技术,尤其是整合数据库的开发技术和整合前端的全栈开发技术。第二部分(第10~15章)围绕高并发项目需求,讲述Spring Boot整合MongoDB、ELK、Redis、MyCAT、Dubbo、Zookeeper、RabbitMQ和Nginx等分布式组件的做法。考虑到不少读者是次接触到这些分布式组件,所以各章都会从搭建环境讲起,结合能观察到运行效果的案例,给出Spring Boot整合诸多组件的实践要点,确保读者能在零基础的前提下学会这些热门技术。第三部分(第16和17章),第16章以Spring Boot Vue.js前后端分离项目为例,给出了基于Vue的全栈开发技术,其中前端用到了Vue、Element-UI和Axios等组件,后端用到了Redis缓存组件和MyCAT分库组件。通过学习本项目,读者能够理解什么是全栈项目,了解前后端分离项目的技术架构与开发流程。第17章通过Spring Redis RabbitMQ高并发限流和秒杀项目讲述Redis和RabbitMQ等分布式组件的用法。通过本项目的学习,读者能够了解高并发项目中的限流和秒杀系统的技术架构,大幅提升自己的项目开发技能。为帮助读者理解各章内容,本书每章还提供了练习题,其中的操作题给出了练习指导,可以帮助读者动手练习,以巩固学习成果。教学视频 源代码 PPT课件为帮助读者更好地学习本书内容,本书还录制了教学视频,读者扫描各章的二维码即可直接观看,随时随地学习,大幅降低学习难度。本书所有代码均在Spring Boot 2.x和IDEA环境下调试通过,所有源代码均提供下载,以方便读者实战演练。本书还提供了完整的PPT课件,读者扫描以下二维码即可获取。 读者如果在学习本书的过程中遇到问题,请联系booksaga@163.com,邮件主题为Spring Boot Vue.js 分布式组件全栈开发训练营。本书读者对象具有Java基础的Spring Boot初学者。具有1~2年Java开发经验的程序员。培训机构、大专院校计算机专业的师生。
编者虽然尽心尽力,但限于水平,本书疏漏之处在所难免,恳请相关技术专家和读者不吝指正。
编者2021年8月2日于上海
曹 宇,副教授,从事高校教育工作17年,主要研究领域为计算机应用技术,主讲Java编程课程多年,主导开发了EPC企业专利信息协同平台、大宗商品信息管理系统等多个项目,公开发表了《基于蒙太古语义学和受控自然语言的文献信息系统的实现》《基于JSON、JavaScript、HTML5和前端存储技术的均衡运算框架研究》《基于UWB的ROS机器人室内定位系统设计》等论文数十篇。胡书敏,大连理工大学计算机硕士,有15年Java开发经验,资深Java架构师,目前在SAP从事Java开发工作,有平安、花旗和IBM等大厂的工作经验,同时还有近8年Java技术面试官的经验。出版过《Java Web轻量级开发面试教程》《Java核心技术及面试指南》《Spring Cloud实战》等技术图书。
第1章 搭建Spring Boot开发环境 11.1 初识Spring Boot 11.1.1 Spring Boot是什么 11.1.2 Spring、Spring MVC和Spring Boot的关系 11.1.3 Spring Boot是SSM框架的升级版 21.2 搭建Spring Boot的开发环境 31.2.1 安装和配置JDK开发环境 31.2.2 安装IDEA集成开发环境 51.2.3 安装Maven工具 51.2.4 Maven工具与IDEA的集成 61.3 用Maven开发个Spring Boot项目 81.3.1 搭建基于Maven的Spring Boot项目 81.3.2 通过pom.xml文件引入依赖包 91.3.3 开发个Spring Boot项目 111.3.4 运行并观察效果 121.3.5 对Spring Boot项目的直观说明 131.4 思考与练习 13第2章 Spring Boot编程基础 152.1 准备知识:什么是控制反转 152.1.1 以实例了解控制反转的做法 152.1.2 Bean与Spring容器 172.1.3 控制反转和依赖注入是一回事 172.2 Spring Boot项目的通用框架 182.3 开发Spring Boot启动类 192.3.1 对注解@SpringBootApplication的说明 192.3.2 配置热部署 202.3.3 通过Banner定制启动信息 212.3.4 关闭定制的启动界面 222.4 编写控制器类 222.4.1 用@Controller注解定义控制器类 222.4.2 用@RequestMapping映射请求 242.4.3 从请求中读取参数 262.4.4 用produces参数返回JSON格式的结果 272.5 编写业务逻辑类 282.5.1 用@Service注解编写业务处理类 282.5.2 在控制器类中调用业务逻辑类的方法 292.6 编写和读取配置文件 302.6.1 配置和读取.properties文件 302.6.2 配置和读取.yml文件 312.6.3 用@Value注解读取配置文件 322.6.4 在项目中用同一种风格读取配置文件 332.7 思考与练习 33第3章 Spring Boot用JPA操作数据库 353.1 搭建MySQL环境 353.1.1 安装MySQL数据库和客户端 353.1.2 通过MySQL客户端创建数据库连接 363.1.3 通过MySQL客户端创建数据库 383.1.4 在数据库中创建数据表 393.1.5 向数据表中插入若干数据 393.2 ORM概念与JPA组件 403.2.1 通过ORM分离业务和数据库操作 403.2.2 JPA组件是ORM的解决方案 413.2.3 JPA组件的常用接口和实现类 413.3 通过JpaRepository访问数据库 423.3.1 创建项目,引入JPA依赖包 423.3.2 确认MySQL数据环境 433.3.3 编写业务实体类 433.3.4 编写JPA的配置文件 443.3.5 用JpaRepository编写Repo类 453.3.6 编写控制器类和业务逻辑类 463.3.7 运行观察增删改查的效果 483.4 实现分页和排序的JPA接口 493.4.1 用PagingAndSortingRepository实现排序和分页 493.4.2 对排序和分页对象的说明 513.5 深入了解JPA查询数据的方式 523.5.1 JPA从方法名中解析数据库操作的方式 523.5.2 用@Query查询数据 533.5.3 用nativeQuery参数运行原生SQL语句 533.6 通过JPA组件引入事务 543.6.1 要么全都做,要么全都不做的事务 543.6.2 用@Transactional注解管理事务 543.6.3 定义事务隔离级别 563.6.4 定义事务传播机制 573.6.5 @transactional注解使用建议 583.7 思考与练习 59第4章 Spring Boot整合前端模板 604.1 Thymeleaf模板与前后端交互 604.1.1 用于前后端交互的ModelAndView对象 604.1.2 Spring Boot与Thymeleaf整合的范例 614.1.3 用Thymeleaf循环展示数据 644.1.4 用Thymeleaf进行条件判断 664.2 Spring Boot、JPA整合Thymeleaf 674.2.1 创建项目并准备数据环境 674.2.2 通过JPA获取数据并传给前端 684.2.3 用Thymeleaf模板演示分页效果 714.3 Spring Boot整合FreeMarker 744.3.1 Spring Boot整合FreeMarker的简单范例 744.3.2 用FreeMarker模板展示分页效果 764.4 思考与练习 79第5章 面向切面编程与过滤器拦截器 805.1 面向切面的概念和做法 805.1.1 相关概念 805.1.2 用范例了解面向切面编程 815.1.3 环绕通知与拦截器 855.2 Spring Boot与拦截器 855.2.1 拦截器的重要方法 855.2.2 Spring Boot整合多个拦截器 865.2.3 从拦截器的运行效果观察执行顺序 905.3 Spring Boot与过滤器 905.3.1 过滤器的3个重要方法 905.3.2 Spring Boot整合多个过滤器 915.3.3 从运行效果观察过滤器的执行顺序 945.3.4 过滤器和拦截器的异同点 945.4 思考与练习 95第6章 用RESTful规范提供统一风格的服务 966.1 RESTful规范与模块间的通信 966.1.1 URL请求、HTTP动作与返回码 966.1.2 什么是RESTful 976.1.3 增删改查方法对应的RESTful接口名 986.1.4 调用不同版本的请求 986.2 用RESTful统一项目的对外服务风格 996.2.1 创建项目 996.2.2 定义pom.xml,编写启动类 1006.2.3 统一返回结果的格式 1006.2.4 在控制器类中定义增删改查方法 1026.2.5 全局性异常处理机制 1046.3 用RestTemplate调用RESTful请求 1056.3.1 RestTemplate对象重要方法说明 1066.3.2 用RestTemplate发起POST请求 1066.3.3 用RestTemplate发起GET请求 1076.3.4 观察异常处理的结果 1086.3.5 用RestTemplate发起PUT请求 1096.3.6 用RestTemplate发起DELETE请求 1096.4 用Swagger可视化RESTful请求 1106.4.1 Swagger能解决哪些问题 1106.4.2 用Swagger可视化RESTful请求 1106.4.3 演示运行效果 1126.5 思考与练习 114第7章 Spring Boot整合日志组件 1167.1 Spring Boot整合logback输出日志 1167.1.1 Spring Boot整合logback的范例项目 1167.1.2 用不同级别的日志输出不同种类的信息 1207.1.3 为每个线程设置标识,方便追踪问题 1217.1.4 格式化日志文件名,方便排查问题 1227.2 搭建ELK组件开发环境 1227.2.1 ELK组件与工作示意图 1237.2.2 搭建ELK运行环境 1237.3 Spring Boot整合ELK平台 1267.3.1 Spring Boot向ELK输出日志 1267.3.2 在Kibana中观察日志 1277.4 思考与练习 129第8章 Spring Boot整合Junit单元测试组件 1318.1 了解单元测试 1318.1.1 单元测试的目的及难点分析 1318.1.2 Junit组件简介 1328.1.3 单元测试同其他测试的关系 1328.2 对待测试项目的分析 1338.2.1 构建待测试的项目 1338.2.2 测试要点分析 1348.3 Spring Boot整合Junit 1358.3.1 引入Junit依赖包 1358.3.2 测试控制器方法 1358.3.3 测试业务处理方法 1388.3.4 测试数据访问方法 1408.4 思考与练习 141第9章 Spring Boot集成安全管理框架 1439.1 安全管理与Spring Security框架 1439.1.1 安全管理需求点分析 1439.1.2 Spring Security框架介绍 1449.2 Spring Boot整合Spring Security 1449.2.1 引入依赖包,编写启动类和控制类 1449.2.2 观察身份验证效果 1459.2.3 在配置文件中管理登录信息 1469.2.4 以配置类的方式管理登录信息 1469.2.5 基于角色的权限管理 1479.3 基于数据库的安全管理框架 1499.3.1 准备数据 1499.3.2 创建项目,编写pom.xml 1519.3.3 编写数据库配置文件 1529.3.4 从数据库中获取安全信息 1529.4 Spring Boot整合Shiro框架 1539.4.1 Shiro框架概述 1539.4.2 Spring Boot整合Shiro框架的范例说明 1549.4.3 编写pom.xml文件和启动类 1549.4.4 编写控制器类 1559.4.5 编写Shiro相关类 1569.4.6 编写登录等前端代码 1599.4.7 观察基于Shiro的安全验证流程 1609.5 思考与练习 161第10章 Spring Boot整合MongoDB数据库 16310.1 了解MongoDB 16310.1.1 MongoDB概述 16310.1.2 MongoDB的优缺点 16410.1.3 安装MongoDB数据库 16410.2 使用MongoDB 16510.2.1 创建数据库和数据表 16510.2.2 操作数据表的数据 16610.3 Spring Boot整合MongoDB 16710.3.1 项目和数据库的说明 16710.3.2 编写pom文件、启动类和配置文件 16710.3.3 编写业务模型类 16810.3.4 通过MongoTemplate操作MongoDB 16910.3.5 通过JPA操作MongoDB 17110.3.6 观察运行结果 17210.4 思考与练习 173第11章 Spring Boot整合Redis缓存 17411.1 了解Redis 17411.1.1 Redis概述 17411.1.2 Redis的优缺点 17511.1.3 搭建Redis数据库环境 17511.1.4 Redis服务器和客户端 17611.2 Redis常用命令 17611.2.1 set和get命令 17611.2.2 del命令 17711.2.3 exists命令 17711.3 Redis基本数据类型 17811.3.1 字符串类型 17811.3.2 Hash类型 17811.3.3 列表类型 17911.3.4 集合类型 18011.3.5 有序集合类型 18011.4 Spring Boot整合Redis 18111.4.1 项目说明 18111.4.2 引入依赖包 18211.4.3 编写配置文件和启动类 18211.4.4 编写控制器类和业务模型类 18311.4.5 编写业务逻辑类 18411.4.6 编写与Redis交互的类 18511.4.7 观察和Redis整合的效果 18611.5 Spring Boot整合数据库与Redis缓存 18611.5.1 数据库整合缓存的说明 18611.5.2 防缓存穿透的设计 18711.5.3 防内存溢出的设计 18711.5.4 整合数据库和缓存的项目 18811.5.5 观察MySQL和Redis的整合效果 19311.6 思考与练习 194第12章 Spring Boot整合MyCAT分库组件 19612.1 MyCAT分库组件概述 19612.1.1 分库需求与MyCAT组件 19612.1.2 MyCAT组件的重要配置文件 19712.1.3 下载MyCAT组件 19812.2 MyCAT整合MySQL实现分库效果 19812.2.1 分库效果框架图 19912.2.2 用MyCAT实现分库效果 19912.2.3 观察分库效果 20212.3 Spring Boot整合MyCAT组件 20212.3.1 通过pom.xml文件引入依赖包 20212.3.2 编写配置文件 20312.3.3 实现整合效果 20312.3.4 观察分库效果 20512.4 Spring Boot整合Redis与MyCAT组件 20612.4.1 整合后的数据服务架构 20612.4.2 实现整合效果 20612.4.3 观察整合效果 21012.5 思考与练习 211第13章 Spring Boot整合Dubbo和Zookeeper组件 21313.1 Zookeeper和Dubbo框架概述 21313.1.1 远端方法调用和Dubbo组件 21313.1.2 Dubbo注册中心与Zookeeper组件 21413.1.3 下载并配置Zookeeper组件 21513.2 搭建基于Dubbo的服务提供者 21513.2.1 编写pom.xml和启动类 21613.2.2 编写配置文件 21713.2.3 编写服务接口和服务类 21713.2.4 关于超时时间说明 21813.2.5 关于重试次数的说明 21813.3 编写调用Dubbo服务的项目 21913.3.1 编写配置文件 21913.3.2 重写Dubbo服务方法的接口 21913.3.3 通过@Reference注解调用方法 21913.3.4 观察Dubbo调用的效果 22013.4 思考与练习 221第14章 Spring Boot整合RabbitMQ消息中间件 22214.1 RabbitMQ概述 22214.1.1 消息队列和RabbitMQ消息中间件 22214.1.2 消息交换机与消息队列 22314.1.3 搭建RabbitMQ工作环境 22314.2 Spring Boot整合RabbitMQ 22414.2.1 项目概述 22414.2.2 编写pom.xml和启动类 22514.2.3 编写配置文件 22514.2.4 编写待传输的对象类 22514.2.5 编写消息交换机和消息队列的配置类 22614.2.6 发送String和对象型的消息 22714.2.7 观察接收String消息的效果 22814.2.8 观察接收对象类消息的效果 22914.3 用RabbitMQ搭建异步交互系统 22914.3.1 异步系统概述 23014.3.2 包含RabbitMQ的服务调用者 23014.3.3 包含RabbitMQ的服务提供者 23314.3.4 观察异步交互流程 23414.4 思考与练习 235第15章 项目打包、分布式部署和监控 23615.1 打包和运行Spring Boot项目 23615.1.1 用Maven命令打包 23615.1.2 用Java命令启动项目 23815.2 基于Nginx的分布式部署 23915.2.1 Nginx组件与分布式负载均衡 23915.2.2 下载Nginx组件 23915.2.3 实践分布式部署Spring Boot项目 24015.3 监控Spring Boot项目 24215.3.1 引入依赖包,监控端点 24215.3.2 配置监控项 24315.3.3 可视化监控并邮件告警 24415.4 思考与练习 247第16章 Spring Boot Vue前后端分离项目的开发 24916.1 项目概述 24916.1.1 演示增删改查订单效果 24916.1.2 后端项目说明 25016.1.3 前端框架和组件分析 25116.2 后端Spring Boot项目实践要点 25216.2.1 application.yml配置文件 25216.2.2 跨域问题与CORS解决方法 25316.2.3 控制器层对外提供的服务方法 25316.3 搭建前端Vue项目框架 25516.3.1 安装Node.js和Visual Studio Code 25516.3.2 创建前端Vue项目 25516.3.3 引入Element-ui和Axios组件 25616.4 开发前端页面 25616.4.1 前端重要文件的说明 25616.4.2 在首页添加诸多组件 25716.4.3 定义路由效果 25816.4.4 分页展示订单 25916.4.5 修改订单页面 26216.4.6 添加订单页面 26416.5 观察项目的运行效果 26516.5.1 启动前后端项目 26616.5.2 展示订单和删除订单 26616.5.3 修改订单 26716.5.4 添加订单 26716.6 思考与练习 267第17章 Spring Redis RabbitMQ限流和秒杀项目的开发 26917.1 项目概述 26917.2 基于Redis的Lua脚本分析 27017.2.1 Lua脚本的特性 27017.2.2 在Redis中引入Lua脚本 27017.2.3 Lua脚本的返回值和参数 27117.2.4 分支语句 27217.3 实现限流和秒杀功能 27217.3.1 创建项目并编写配置文件 27217.3.2 编写启动类和控制器类 27317.3.3 消息队列的相关配置 27517.3.4 实现秒杀功能的Lua脚本 27517.3.5 在实现业务实现类中实现限流和秒杀 27617.3.6 观察秒杀效果 27817.4 以异步方式保存秒杀结果 27817.4.1 创建项目并设计数据表 27917.4.2 配置消息队列和数据库参数 27917.4.3 监听消息队列并保存秒杀结果 28117.4.4 全链路效果演示 28217.5 思考与练习 283