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