《Java服务端研发知识图谱》主要讲解了Java语言的使用和特性、Maven工程管理、Svn和Git代码管理、Linux服务器命令;框架部分包含Spring框架治理、SpringMVC、SpringBoot、框架演进讲解、SpringCloud微服务框架。组件部分包含MySQL数据库及操作、MongoDB存储、Redis缓存、Zookeeper配置及注册发现原理、FastDFS文件存储、ElasticSearch搜索、定时任务、RabbitMQ消息队列、ELK日志展示及分析;部署部分包含Docker镜像技术、Jenkins持续集成、Harbor镜像仓库、Rancher容器管理;工具部分包含Swagger接口文档编写及测试工具、JMeter测试工具、VisualVm分析工具等。
前 言
期望您能把这本书当成在Java服务端领域探索的一张微缩地图。
计算机自发明以来至今不到百年时间,但是其发展速度却是超乎想象的。这种快速的发展不仅表现在纯科研的方面,还表现在技术的普及及应用方面。首先,计算机硬件在长达半个多世纪的时间内,遵循摩尔定律一的发展规则;其次,计算机软件从最初的纸带打孔编程已经发展到现在的各种高级语言、框架等;最后,在技术应用上,近几年刚刚成熟的移动互联网,已经改变了千千万万人的生活。
计算机如此迅猛的发展速度,当然与广大从业者的不断努力和探索是分不开的。目前计算机的飞速发展仍处于人类的控制之下,还没有出现独立的苗头,但是计算机在某些特定领域已经可以战胜人类了。不久前计算机在围棋上战胜了人类,这其实并没有那么让人吃惊,因为笔者认为在所有条件和规则已知,并且有明确胜负标准(棋类作为代表)的前提下,人类与计算机对局已经毫无还手之力。
计算机现在的发展已经如此健全和强大,对于计算机从业者来说可能并不是一个好消息,因为从业者要学习大量的计算机知识。这也是笔者写作本书想解决的问题:面对那么多知识,应该如何学习以及如何最快地学习。所以本书尽量涵盖了与Java相关的语言要点、服务框架、功能组件体系以及其他辅助工具,目的就是通过最精炼的篇幅,讲述某一技术领域最常用的部分,而此部分会让读者快速地理解、接收并运用到实际工作中。
全书共分为五篇,每篇内容如下:
第一篇主要讲解Java语言,以及工程构建、代码管理和基本的服务器命令,以这些内容作为本书的起点和基础。
第二篇主要讲解Spring框架治理、服务框架Spring MVC和Spring Boot、服务架构的演进以及微服务框架Spring Cloud。
第三篇主要讲解在服务中使用的数据库、缓存、定时任务、消息队列、全局搜索等功能组件的使用方法和使用场景。
第四篇主要讲解镜像技术的用法,使用镜像技术快速搭建功能环境的服务组件,并且讲解使用Jenkins构建工程以及服务部署相关的内容。
第五篇主要讲解在日常工作中,为了提高工作质量和效率所使用的研发工具。
本书采用循序渐进的方式,讲述Java服务端研发所涉及的几个领域。希望读者阅读本书后,对相关内容进行实践和总结,从而在脑海中绘制出属于自己的技术版图。
书中包含大量代码,为了避免分散读者的注意力,书中省略了部分重复的和不重要的代码。如果读者想查看完整的代码可以下载本书附带的源代码进行了解。
编写技术类书籍是一件非常辛苦的事情,与日常研发不同,编写技术类书籍不仅要会用涉及的技术,还要了解其原理,并且要以读者能够理解的方式讲述出来,同时还要保证技术使用的正确性以及描述的准确性。在编写此书的过程中,两位作者一直秉承着实用且精简的原则,经过几轮的代码复查和文档复查才终于结稿。在此特别感谢默默支持着我们的家人,朋友,感谢曾经一起工作奋战过的同事冯剑、侯金砖、尹波,感谢机械工业出版社车忱编辑,感谢曾经支持过我们的所有人。谢谢大家!
目 录
业界推荐
出版说明
前言
第一篇 基 础 篇
第1章 Java概要
1.1 Java环境搭建
1.1.1 Java基础环境搭建
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 继承和多态
1.5.1 Object
1.5.2 组合
1.5.3 继承
1.5.4 多态
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 并发
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环境的搭建
2.1.2 在Eclipse中配置Maven的settings
文件
2.2 Maven使用
2.2.1 在Eclipse中创建第一个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的执行流程
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 创建REST风格的Controller
6.4 Spring MVC 拦截器
6.4.1 拦截器
6.4.2 自定义拦截器
6.4.3 拦截器执行规则
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 配置优先级
7.3.4 多环境配置
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 规范数据返回
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.