全栈技能修炼:使用Angular和SpringBoot打造全栈应用
✍ Scribed by 王芃
- Publisher
- 电子工业出版社
- Year
- 2019
- Tongue
- Chinese
- Leaves
- 510
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
《全栈技能修炼:使用Angular和SpringBoot打造全栈应用》涉及很多平台、框架和类库等,主要有前端使用的Angular,后端使用的Spring Boot框架、Spring Security安全框架,数据库涉及MongoDB、Elasticsearch和Redis。此外,还会学习函数式编程、响应式编程(RxJS)、Redux等理念,Swagger、JaVers等工具及Rest、WebSocket、微服务等概念。
一本书是无法深入这些技术细节的,这也不是本书的目标。希望通过本书,可以帮助读者开启一扇门,真正掌握这些让人眼花缭乱的编程语言、框架、平台、IDE等技术背后的编程思想。
✦ Table of Contents
封面
扉页
版权页
推荐序
前言
目录
第1章 技术的选型和环境搭建
1.1 技术选型
1.1.1 前端框架选型
1.1.2 后端框架选型
1.1.3 数据库选型
1.2 环境搭建
1.2.1 基础开发环境安装
1.2.2 IDE 的选择
1.2.3 字体的选择
1.2.4 定义通用的代码格式
1.3 工程项目的结构
1.3.1 前端项目
1.3.2 后端项目
1.3.3 整体项目工程的文件结构
第2章 使用Angular快速构造前端原型
2.1 Angular 基础概念
2.1.1 安装 Angular CLI
2.1.2 依赖性注入
2.1.3 组件
2.1.4 指令
2.1.5 管道
2.1.6 模块
2.1.7 模板驱动型表单
2.1.8 响应式表单
2.2 Angular Material 介绍
2.2.1 组件类别
2.2.2 布局控件:Sidenav
2.2.3 Flex 布局和 Angular Flex-layout
2.2.4 封装 Header/Footer/Sidebar
2.3 添加主题支持
2.3.1 Material Design 中对于主题的约束
2.3.2 主题的明与暗
2.3.3 Angular Material 中的主题
2.4 容器化 Angular 应用
2.4.1 什么是容器
2.4.2 安装 Docker
2.4.3 镜像仓库加速
2.4.4 创建 Angular 的 Docker 镜像
2.4.5 启动容器
2.4.6 使用 docker-compose 组织复杂的环境配置
2.4.7 使用 .dockerignore 文件
第3章 何谓后端
3.1 创建一个 Spring Boot 工程
3.1.1 通过 Gradle 创建
3.1.2 通过 Maven 创建
3.1.3 通过 IDE 创建
3.1.4 工程项目的组织
3.2 API 的构建可以如此简单
3.2.1 API 工程结构
3.2.2 领域对象
3.2.3 构造 Controller
3.2.4 启动服务
3.2.5 测试 API
3.3 MongoDB 支撑的 API
3.3.1 什么是 NoSQL
3.3.2 MongoDB 的集成
3.3.3 HATEOAS
3.3.4 “魔法”的背后
3.3.5 让后端也能热更新
3.4.2 使用 Gradle 自动化 Docker 任务
3.4 容器化后端
3.4.1 手动创建镜像
3.4.3 使用 docker-compose 组合服务
3.4.4 IDEA 中的 Gradle 支持
3.4.5 在容器中调试
第4章 登录鉴权功能的构建
4.1 模块化和组件化
4.1.1 登录的领域模型构建
4.1.2 前端页面设计
4.2 响应式编程初探
4.2.1 不同的视角
4.2.2 实现一个计数器
4.2.3 为什么要使用 Rx
4.2.4 Observable 的性质
4.2.5 RxJS 的调试
4.3 前端服务层
4.3.1 构建“伪”服务
4.3.2 构建“聪明组件”
4.3.3 路由处理
4.4 完成忘记密码前端设计
4.4.1 使用 RxJS 打造短信验证码控件
4.4.2 忘记密码向导“笨组件”
4.4.3 忘记密码的“聪明组件”
第5章 构建后端API
5.1 HyperMedia API 与传统 API
5.1.1 领域对象
5.1.2 API的可见控制
5.1.3 传统的 API 实现模式
5.2 Spring Data 中的查询
5.2.1 基础概念——Repository
5.2.2 查询方式
5.2.3 复杂类型查询
5.2.4 自定义查询
5.2.5 自定义 Repository
5.3 Controller 的构建
5.3.1 改造 TaskRepo 和 UserRepo
5.3.2 实现 Controller
5.3.3 登录
5.3.4 注册
5.3.5 忘记密码第一步:验证手机
5.3.6 忘记密码第二步:重置密码
5.3.7 API 的异常处理
5.4 构建安全的 API 接口
5.4.1 为什么要保护 API
5.4.2 什么是JWT
5.4.3 JWT的生成和解析
5.4.4 权限的设计
5.4.5 使用 Spring Security 规划角色安全
5.4.6 在 Spring Boot 中启用 Spring Security
5.4.7 改造用户对象
5.4.8 构建 JWT token 工具类
5.4.9 如何检查任何请求的授权信息
5.4.10 得到用户信息
5.4.11 配置 Spring Security
5.4.12 使用 JWT 进行 API 访问
5.5 跨域和 API 文档
5.5.1 跨域解决方案——CORS
5.5.2 API 文档
第6章 前端和API的配合
6.1 响应式的 HTTP API 处理
6.1.1 Angular 中的 HTTP 服务
6.1.2 Angular 的开发环境配置
6.1.3 在前端服务中使用 HttpClient
6.1.4 更改注册表单控件
6.2 RxJS进阶
6.2.1 改造登录表单
6.2.2 RxJS 的高阶操作符
6.2.3 合并操作符
6.3 HTTP 拦截
6.3.1 实现一个简单的 HttpInterceptor
6.3.2 鉴权HttpInterceptor
6.3.3 一个日志拦截器
6.4 Angular 路由
6.4.1 基准锚链接
6.4.2 Router 模块的简介
6.4.3 获取父路由的参数
6.4.4 获得前一个路由
6.4.5 Activated Route
6.5 安全守卫
6.5.1 激活守卫
6.5.2 激活子路由守卫
6.5.3 加载守卫
6.5.4 退出守卫
6.5.5 数据预获取守卫
第7章 后端不只是API
7.1 缓存
7.1.1 配置 Cache
7.1.2 常用的缓存注解
7.1.3 测试缓存是否生效
7.2 Redis 作为缓存框架
7.2.1 Redis 的安装配置
7.2.2 在 Spring Boot 中集成 Redis
7.2.3 Redisson
7.3 使用 ElasticSearch 提升搜索性能
7.3.1 配置
7.3.2 构建用户查询 API
7.4 Spring Boot Actuator 和数据审计
7.4.1 初窥审计事件
7.4.2 实现应用的数据审计
7.4.3 JaVers 和 Spring Boot 集成
7.5 WebSocket 实时通信服务
7.5.1 HTTP 和 WebSocket 的区别和联系
7.5.2 何时使用 WebSocket
7.5.3 STOMP
7.5.4 WebSocket 配置
7.5.5 WebScoket 安全
7.5.6 建立一个实时消息 Controller
7.5.7 测试 WebSocket
7.6 Spring Boot 的自动化测试
第8章 前端的工程化
8.1 使用 Redux 管理状态
8.1.1 何时需要使用 Redux
8.1.2 Redux 的核心概念
8.1.3 在 Angular 中使用 Redux
8.1.4 Selector——状态选择器
8.2 使用 Effects管理副作用
8.3 使用 @ngrx/entity 提升生产效率
8.4 服务端渲染
8.4.1 Angular Universal 的工作机理
8.4.2 安装依赖
8.4.3 添加服务器端渲染模块
8.4.4 使用 Node.js Express 构建服务器
8.4.5 服务器端渲染中出现重复请求的处理
第9章 Spring Cloud打造微服务
9.1 微服务的体系架构
9.1.1 服务即组件
9.1.2 微服务架构下的组织机构变化
9.1.3 产品化服务
9.1.4 持续集成和持续发布
9.1.5 监控和报警
9.1.6 Spring Cloud 项目依赖
9.2 配置服务和发现服务
9.2.1 配置中心是什么
9.2.2 发现服务
9.3 监控服务和路由服务
9.3.1 Spring Boot Admin
9.3.2 路由服务
9.4 微服务的远程调用
9.4.1 Feign Client
9.4.2 负载均衡
附录A 常见云服务使用问题汇总
📜 SIMILAR VOLUMES
<p>本书介绍了作者提出的敏捷数据科学的方法论,结合作者在行业中多年的实际工作经验,为数据科学团队提供了一套以类似敏捷开发的方法开展数据科学研究的实践经验。全书基于Spark做全栈数据分析,书中展示了工业界一些常见工具的使用,包括从前端显示到后端处理的各个环节,手把手帮助数据科学家快速将理论转化为真正面向用户的应用程序,从而让读者在利用数据创造真正价值的同时,也能不断完善自己的研究。本书适合初学者阅读,数据科学家、工程师、分析师都能在本书中有所收获。</p>
<p>《全栈数据之门》以数据分析领域最热的Python语言为主要线索,介绍了数据分析库numpy、Pandas与机器学习库scikit-learn,使用了可视化环境Orange 3来理解算法的一些细节。对于机器学习,既有常用算法kNN与Kmeans的应用,决策树与随机森林的实战,还涉及常用特征工程与深度学习中的自动编程器。在大数据Hadoop与Hive环境的基础之上,使用Spark的ML/MLlib库集成了前面的各部分内容,让分布式机器学习更容易。大量的工具与技能实战的介绍将各部分融合成一个全栈的数据科学内容。</p> <p>《全栈数据之门》不是从入门到精通地介绍某一种技术,可以把《全栈数据