《Java服務端研發(fā)知識圖譜》主要講解了Java語言的使用和特性、Maven工程管理、Svn和Git代碼管理、Linux服務器命令;框架部分包含Spring框架治理、SpringMVC、SpringBoot、框架演進講解、SpringCloud微服務框架。組件部分包含MySQL數據庫及操作、MongoDB存儲、Redis緩存、Zookeeper配置及注冊發(fā)現原理、FastDFS文件存儲、ElasticSearch搜索、定時任務、RabbitMQ消息隊列、ELK日志展示及分析;部署部分包含Docker鏡像技術、Jenkins持續(xù)集成、Harbor鏡像倉庫、Rancher容器管理;工具部分包含Swagger接口文檔編寫及測試工具、JMeter測試工具、VisualVm分析工具等。
前 言
期望您能把這本書當成在Java服務端領域探索的一張微縮地圖。
計算機自發(fā)明以來至今不到百年時間,但是其發(fā)展速度卻是超乎想象的。這種快速的發(fā)展不僅表現在純科研的方面,還表現在技術的普及及應用方面。首先,計算機硬件在長達半個多世紀的時間內,遵循摩爾定律一的發(fā)展規(guī)則;其次,計算機軟件從最初的紙帶打孔編程已經發(fā)展到現在的各種高級語言、框架等;最后,在技術應用上,近幾年剛剛成熟的移動互聯網,已經改變了千千萬萬人的生活。
計算機如此迅猛的發(fā)展速度,當然與廣大從業(yè)者的不斷努力和探索是分不開的。目前計算機的飛速發(fā)展仍處于人類的控制之下,還沒有出現獨立的苗頭,但是計算機在某些特定領域已經可以戰(zhàn)勝人類了。不久前計算機在圍棋上戰(zhàn)勝了人類,這其實并沒有那么讓人吃驚,因為筆者認為在所有條件和規(guī)則已知,并且有明確勝負標準(棋類作為代表)的前提下,人類與計算機對局已經毫無還手之力。
計算機現在的發(fā)展已經如此健全和強大,對于計算機從業(yè)者來說可能并不是一個好消息,因為從業(yè)者要學習大量的計算機知識。這也是筆者寫作本書想解決的問題:面對那么多知識,應該如何學習以及如何最快地學習。所以本書盡量涵蓋了與Java相關的語言要點、服務框架、功能組件體系以及其他輔助工具,目的就是通過最精煉的篇幅,講述某一技術領域最常用的部分,而此部分會讓讀者快速地理解、接收并運用到實際工作中。
全書共分為五篇,每篇內容如下:
第一篇主要講解Java語言,以及工程構建、代碼管理和基本的服務器命令,以這些內容作為本書的起點和基礎。
第二篇主要講解Spring框架治理、服務框架Spring MVC和Spring Boot、服務架構的演進以及微服務框架Spring Cloud。
第三篇主要講解在服務中使用的數據庫、緩存、定時任務、消息隊列、全局搜索等功能組件的使用方法和使用場景。
第四篇主要講解鏡像技術的用法,使用鏡像技術快速搭建功能環(huán)境的服務組件,并且講解使用Jenkins構建工程以及服務部署相關的內容。
第五篇主要講解在日常工作中,為了提高工作質量和效率所使用的研發(fā)工具。
本書采用循序漸進的方式,講述Java服務端研發(fā)所涉及的幾個領域。希望讀者閱讀本書后,對相關內容進行實踐和總結,從而在腦海中繪制出屬于自己的技術版圖。
書中包含大量代碼,為了避免分散讀者的注意力,書中省略了部分重復的和不重要的代碼。如果讀者想查看完整的代碼可以下載本書附帶的源代碼進行了解。
編寫技術類書籍是一件非常辛苦的事情,與日常研發(fā)不同,編寫技術類書籍不僅要會用涉及的技術,還要了解其原理,并且要以讀者能夠理解的方式講述出來,同時還要保證技術使用的正確性以及描述的準確性。在編寫此書的過程中,兩位作者一直秉承著實用且精簡的原則,經過幾輪的代碼復查和文檔復查才終于結稿。在此特別感謝默默支持著我們的家人,朋友,感謝曾經一起工作奮戰(zhàn)過的同事馮劍、侯金磚、尹波,感謝機械工業(yè)出版社車忱編輯,感謝曾經支持過我們的所有人。謝謝大家!
目 錄
業(yè)界推薦
出版說明
前言
第一篇 基 礎 篇
第1章 Java概要
1.1 Java環(huán)境搭建
1.1.1 Java基礎環(huán)境搭建
1.1.2 Eclipse的安裝
1.1.3 第一個Java程序
1.2 基本類型與運算
1.2.1 基本類型概述
1.2.2 操作符
1.2.3 類型轉換與越界
1.3 流程控制
1.3.1 If-else
1.3.2 Switch
1.3.3 For
1.3.4 While
1.3.5 break與continue
1.3.6 Return
1.4 對象
1.4.1 什么是對象
1.4.2 方法
1.4.3 初始化
1.4.4 This與Static
1.4.5 訪問權限
1.4.6 垃圾回收
1.5 繼承和多態(tài)
1.5.1 Object
1.5.2 組合
1.5.3 繼承
1.5.4 多態(tài)
1.5.5 接口
1.5.6 抽象類
1.6 容器
1.6.1 數組
1.6.2 List
1.6.3 Set
1.6.4 Map
1.7 泛型
1.7.1 泛型的基本使用
1.7.2 通配符
1.7.3 泛型接口
1.7.4 自定義泛型
1.8 異常
1.8.1 運行時異常
1.8.2 檢查性異常
1.8.3 自定義異常
1.9 I/O
1.9.1 控制臺I/O
1.9.2 查看文件列表
1.9.3 文件I/O
1.9.4 序列化
1.9.5 網絡I/O
1.10 并發(fā)
1.10.1 多線程的實現
1.10.2 線程沖突
1.10.3 鎖
1.11 反射與注解
1.11.1 反射
1.11.2 注解
1.12 JUnit
1.12.1 JUnit的集成
1.12.2 JUnit的基本使用
第2章 Maven
2.1 Maven安裝和配置
2.1.1 Maven環(huán)境的搭建
2.1.2 在Eclipse中配置Maven的settings
文件
2.2 Maven使用
2.2.1 在Eclipse中創(chuàng)建第一個Maven
項目
2.2.2 認識pom文件
2.2.3 運行Maven項目
2.3 Maven坐標和依賴
2.3.1 什么是坐標
2.3.2 什么是Maven依賴
2.3.3 Maven依賴的scope范圍
2.3.4 Maven的依賴調解原則
2.3.5 Maven倉庫使用
2.4 Maven生命周期和插件
2.4.1 Maven 生命周期
2.4.2 Maven插件
2.4.3 生命周期與插件的關系
2.5 Maven聚合和繼承
2.5.1 聚合應用的場景
2.5.2 Maven的繼承
2.5.3 Maven中dependencyManagement
的使用
2.5.4 Maven中的pluginManagement
的使用
第3章 代碼管理
3.1 Svn
3.1.1 Svn客戶端的安裝
3.1.2 Svn基本使用
3.1.3 Svn 解決沖突
3.1.4 Svn 分支
3.2 Git
3.2.1 Git客戶端安裝
3.2.2 Git 基本使用
3.2.3 Git 分支管理
3.2.4 Git 標簽
3.2.5 在Git中配置SSH
3.2.6 用Git stash暫存代碼
第4章 Linux命令
4.1 Linux簡介
4.2 Linux常用命令
4.3 Linux文件管理
4.3.1 Linux文件操作命令
4.3.2 Linux文件權限
4.4 Linux 啟動服務
第二篇 服務框架篇
第5章 Spring
5.1 Spring概述
5.1.1 核心模塊
5.1.2 預備知識
5.2 構建第一個Spring工程
5.3 IoC
5.3.1 IoC和DI基本原理
5.3.2 IoC的配置使用
5.3.3 Bean定義
5.3.4 Bean的作用域
5.3.5 Bean的生命周期
5.3.6 注解實現IoC
5.3.7 注解的作用域scope
5.3.8 自動裝配
5.3.9 @Autowired與@Qualifier
5.4 Aop
5.4.1 AOP的核心概念
5.4.2 AOP的代理機制
5.4.3 基于Schema的AOP使用
5.4.4 基于@AspectJ的AOP使用
5.5 集成Logback
5.5.1 SLF4J簡介
5.5.2 Logback概述
5.5.3 Logback的集成
5.5.4 輸出日志到文件
5.6 集成MyBatis
5.6.1 數據準備
5.6.2 添加Spring與Mybatis集成相關
依賴
5.6.3 編寫相關配置文件
5.6.4 使用generator生成單表增刪改查
代碼
第6章 Spring MVC
6.1 Spring MVC概述
6.1.1 MVC
6.1.2 HTTP請求處理流程
6.1.3 Servlet與Tomcat的關系
6.1.4 Spring MVC的執(zhí)行流程
6.2 構建第一個Spring MVC項目
6.2.1 添加依賴
6.2.2 配置相關文件
6.2.3 基本頁面展示
6.3 Spring MVC Restful實現
6.3.1 REST概述
6.3.2 創(chuàng)建REST風格的Controller
6.4 Spring MVC 攔截器
6.4.1 攔截器
6.4.2 自定義攔截器
6.4.3 攔截器執(zhí)行規(guī)則
6.5 Spring MVC 異常處理器
6.5.1 Spring MVC 異常處理方式
6.5.2 實現自定義異常處理類
6.6 Spring MVC上傳和下載文件
6.6.1 MultipartFile對象
6.6.2 上傳文件
6.6.3 下載文件
第7章 Spring Boot
7.1 構建第一個Spring Boot工程
7.1.1 IDE搭建及特性
7.1.2 工程目錄
7.2 起步依賴
7.3 配置
7.3.1 自動配置
7.3.2 設置配置值
7.3.3 配置優(yōu)先級
7.3.4 多環(huán)境配置
7.3.5 自定義類的注入
7.4 使用Thymeleaf構建頁面
7.4.1 Thymeleaf基本使用
7.4.2 添加頁面邏輯
7.5 使用JPA構建持久化存儲
7.5.1 JPA基本使用
7.5.2 定義JPA擴展接口
7.6 Actuator
7.6.1 Actuator的基本使用
7.6.2 端點的保護
7.7 部署
7.8 參數校驗
7.8.1 前臺完成基本參數校驗
7.8.2 前后臺配合完成數據校驗
7.9 MyBatis的框架整合及數據
校驗
7.9.1 整合MyBatis
7.9.2 后臺接口請求校驗
7.9.3 規(guī)范數據返回
7.10 添加日志及記錄請求信息
7.10.1 添加日志模塊
7.10.2 AOP實現接口信息打印
第8章 服務架構
第9章 Spring Cloud
9.1 Eureka
9.1.1 Eureka基礎使用
9.1.2 配置服務注冊信息
9.1.