注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计Spring Boot应用开发实战

Spring Boot应用开发实战

Spring Boot应用开发实战

定 价:¥79.00

作 者: 饶仕琪 著
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302575269 出版时间: 2021-02-01 包装: 平装
开本: 16 页数: 317 字数:  

内容简介

  随着移动互联网的发展,对Web开发的需求日益上升。Spring Boot作为Web开发领域中的利器,无论是单体应用,还是用于面向服务架构或者微服务架构,都有不错的表现。本书面向准备在Web开发领域一展拳脚的读者,详细介绍了Spring Boot 2.3应用开发的相关知识。 本书共10章,第1~2章介绍了Spring Boot 2.3开发基础,包括环境搭建、依赖引入以及如何从零到一地构建一个基础Spring Boot应用;第3~7章以章为单位聚焦不同技术领域,包括Web服务、数据持久化、服务安全性、测试验证以及部署运维,结合详细示例讲解各领域内通用的解决方案;第8~10章为实战内容,包括三种类型项目的实战:聊天服务、在线商城、个人云盘。 本书内容全面、实例丰富,非常值得广大Web开发从业者作为案头的参考书,也可作为高等院校计算机及相关专业的教材或课程设计参考书。

作者简介

  饶仕琪,BAT某公司高级Java开发工程师。有丰富的开发经验,曾参与大数据云平台、电商系统、物联网平台等数个不同规模项目的开发工作。积极地参与到项目开发周期的各个环节,包括性能分析、设计、开发和测试。掌握的专业知识与开发框架,如Core Java、Spring、设计模式、通讯协议等,均在实战中实践并验证。在主导或是参与项目的推进之外,不断地学习并探索Web开发技术中的“最佳实践”。

图书目录

第1章  Spring Boot基础知识 1
1.1  Spring与Spring Boot 1
1.1.1  当我们谈论Spring时会谈论些什么 1
1.1.2  什么是Spring Boot 2
1.1.3  Spring Boot的优势 3
1.2  Spring Boot 2.3开发环境 4
1.2.1  选择合适的JDK 4
1.2.2  选择趁手的IDE 5
1.2.3  选择适用于大型项目的自动化构建工具 7
1.3  Spring Initializr初始化项目 8
1.3.1  什么是Spring Initializr 8
1.3.2  开始吧!start.spring.io 8
1.3.3  使用IDE初始化Spring Boot工程 10
1.3.4  初探Spring Boot CLI 12
1.4  Spring Boot目录结构 13
1.4.1  初始化的工程结构 13
1.4.2  推荐的工程结构 15
1.4.3  Maven Wrapper让构建工具随源码分发 17
1.5  构建个Spring Boot项目 18
1.5.1  经典“Hello World” 18
1.5.2  使用JUnit 5测试 19
1.5.3  创建工具类CommonUtil 21
1.5.4  使用JPA进行数据持久化 22
1.5.5  修改控制器以及对应模板文件 25
1.5.6  发布HTTP接口 29
1.6  Spring Boot自动配置与外部配置 31
1.6.1  自动配置 31
1.6.2  外部配置 32
1.6.3  命令行配置 32
1.6.4  application.yaml/properties配置文件 33
第2章  使用Spring Boot构建Web应用程序 36
2.1  实体与数据持久化 36
2.1.1  数据持久化框架 36
2.1.2  什么是实体 37
2.1.3  浅谈Spring Data JPA 38
2.1.4  使用Lombok简化POJO 40
2.2  MVC与模板引擎 42
2.2.1  MVC架构 42
2.2.2  Mustache模板引擎 42
2.2.3  构建MVC架构的Web应用 46
2.3  文件上传与下载 50
2.3.1  文件上传 50
2.3.2  文件下载 53
2.4  Spring Boot日志 55
2.4.1  使用预设配置 55
2.4.2  基础配置 56
2.4.3  详细配置 57
2.4.4  Lombok注解:@Sl4j和@Commonslog 58
2.4.5  在Windows平台输出彩色日志的JANSI 59
2.5  过滤器与拦截器 59
2.5.1  过滤器 60
2.5.2  使用过滤器实现访问控制 60
2.5.3  拦截器 62
2.5.4  使用拦截器记录请求参数 63
2.6  Spring Boot事件 64
2.6.1  事件驱动模型 64
2.6.2  内置事件 65
2.6.3  监听内置事件 65
2.6.4  自定义事件 66
2.6.5  异步事件 68
第3章  创建RESTful Web服务 69
3.1  HTTP动词 69
3.1.1  构建一个基础的RESTful Web服务 70
3.1.2  是GetMapping吗?是RequestMapping 74
3.2  请求与响应 76
3.2.1  HTTP报文 76
3.2.2  简单请求与@RequestParam 77
3.2.3  使用@PathVariable获取URL中的参数 79
3.2.4  借助@RequestHeader读取请求头 80
3.2.5  @RequestBody与@ResponseBody 81
3.2.6  使用ResponseEntity处理HTTP响应 82
3.3  参数验证 83
3.3.1  基础验证Bean Validation 83
3.3.2  高级验证Spring Validation 84
3.3.3  自定义校验 86
3.4  错误处理 88
3.4.1  使用@ExceptionHandler处理异常 88
3.4.2  使用HandlerExceptionResolver处理异常 89
3.4.3  使用@ControllerAdvice处理异常 90
3.4.4  抛出ResponseStatusException异常 92
3.5  Swagger文档 92
3.5.1  Swagger/OpenAPI规范 92
3.5.2  生成接口文档 93
3.5.3  使用注解生成文档内容 94
第4章  数据库与持久化技术 97
4.1  使用JdbcTemplate访问关系型数据库 97
4.1.1  引入依赖 97
4.1.2  准备数据 98
4.1.3  queryForObject()方法 99
4.1.4  使用RowMapper映射实体 99
4.1.5  使用BeanPropertyRowMapper映射 100
4.1.6  queryForList()方法 101
4.1.7  不同的JDBCTemplate实现NamedParameterJdbcTemplate 101
4.1.8  update()方法 102
4.2  JPA与关系型数据库 103
4.2.1  什么是JPA 103
4.2.2  再谈Spring Data JPA 104
4.2.3  基于JpaRepository接口查询 106
4.2.4  基于JpaSpecificationExecutor接口查询 109
4.2.5  基于JPQL或SQL 113
4.2.6  多表连接 113
4.2.7  级联操作 117
4.2.8  加载类型 117
4.3  Spring Data MongoDB 118
4.3.1  准备工作 118
4.3.2  使用MongoTemplate访问MongDB 120
4.3.3  使用MongoRepository访问MongoDB 124
4.4  Spring Data Redis 125
4.4.1  准备工作 125
4.4.2  使用RedisRepository访问Redis 126
4.4.3  使用RedisTemplate访问Redis 128
第5章  应用程序安全性 130
5.1  基于Spring Security的注册登录 130
5.1.1  Spring Security简介 130
5.1.2  用户注册 131
5.1.3  用户登录 133
5.1.4  “记住我”功能 135
5.2  权限管理 137
5.2.1  权限与角色 137
5.2.2  权限管理体系中的实体:用户、角色与权限 137
5.2.3  配置与应用 140
5.2.4  权限管理注解 141
5.3  Session-Cookie 143
5.3.1  什么是Session-Cookie 143
5.3.2  使用Spring Session管理Session 144
5.3.3  Session并发配置 146
5.3.4  强制下线 147
5.4  JWT(JSON Web Token) 148
5.4.1  关于JWT 148
5.4.2  JWT工作流程 149
5.4.3  Spring Security集成JWT 150
5.5  OAuth 2.0 156
5.5.1  OAuth 2.0简介 156
5.5.2  授权模式 157
5.5.3  集成OAuth 2.0实现SSO单点登录 160
第6章  自动化测试 164
6.1  单元测试 164
6.1.1  测试金字塔 164
6.1.2  JUnit基础 165
6.1.3  JUnit 5简介 170
6.2  断言 172
6.2.1  assert关键字 173
6.2.2  JUnit 4里的断言 173
6.2.3  assertThat方法 174
6.2.4  自定义Hamcrest匹配器 175
6.2.5  断言框架AssertJ 177
6.3  测试中的模拟行为Mock 179
6.3.1  测试替身 179
6.3.2  Mockito框架 180
6.4  集成测试 183
6.4.1  @WebMvcTest注解 183
6.4.2  @DataJpaTest注解 187
6.4.3  @SpringBootTest以及其他一些注解 189
第7章  部署与运维 190
7.1  发布与部署 190
7.1.1  Spring Boot自身的打包方式1——可执行jar文件 190
7.1.2  Spring Boot自身的打包方式2——部署于传统Web容器的war格式 191
7.1.3  更现代的发布流程1——基于Docker的发布与部署 193
7.1.4  更现代的发布流程2——基于RPM的发布与部署 195
7.1.5  多环境配置 197
7.2  运行监控 198
7.2.1  使用Spring Boot Actuator查看运行指标 199
7.2.2  集成Prometheus 200
7.2.3  Grafana实现可视化监控 203
7.3  Spring Boot开发者工具 206
7.3.1  整合spring-boot-devtools 206
7.3.2  自动配置 207
7.3.3  热部署 207
7.3.4  LiveReload插件支持静态资源的及时更新 208
7.3.5  全局配置 208
7.3.6  远程应用 209
第8章  实战1:基于STOMP协议的聊天服务 211
8.1  架构设计 211
8.2  框架搭建 212
8.3  功能实现 214
8.3.1  了解WebSocket协议 214
8.3.2  HTTP请求升级至WebSocket的过程 215
8.3.3  了解WebSocket应用场景 216
8.3.4  集成WebSocket 216
8.3.5  使用STOMP协议实现消息模块 218
8.3.6  模块配置 225
8.3.7  注册登录 227
8.3.8  聊天记录 230
8.3.9  私聊功能 233
8.4  测试与验证 238
8.4.1  集成测试 238
8.4.2  手工测试 240
第9章  实战2:在线商城 245
9.1  架构设计 245
9.2  框架搭建 246
9.3  数据库设计 247
9.4  功能实现 248
9.4.1  模板引擎Thymeleaf 249
9.4.2  实体类 253
9.4.3  用户注册 256
9.4.4  用户登录 260
9.4.5  主页以及商品列表 263
9.4.6  购物车 266
9.4.7  页眉、导航条以及页脚 271
9.5  测试与验证 272
9.5.1  测试数据 273
9.5.2  集成测试 274
9.5.3  手工测试 276
第10章  实战3:个人云盘 281
10.1  架构设计 281
10.2  框架搭建 282
10.2.1  MinIO与对象存储 282
10.2.2  MinIO部署与使用 283
10.2.3  项目依赖项与软件包结构 283
10.3  数据库设计 285
10.4  功能实现 286
10.4.1  MinIO Java SDK简介 286
10.4.2  实现MinIO Starter 290
10.4.3  实体类 294
10.4.4  用户注册 296
10.4.5  用户登录 298
10.4.6  云盘主页 300
10.4.7  页面配置 306
10.5  测试与验证 308
10.5.1  集成测试 308
10.5.2  手工测试 309

本目录推荐