书籍详情
详解Spring Boot:从入门到企业级开发实战
作者:孙鑫
出版社:电子工业出版社
出版时间:2022-08-01
ISBN:9787121439841
定价:¥129.00
购买这本书可以去
内容简介
本书针对Spring Boot 2.6.x及以上版本,采用理论结合实际的讲解方式,每章均配有多个示例,在内容安排上由浅入深,在知识讲解上深入浅出,让读者轻松掌握多种技术、中间件、框架与Spring Boot的整合开发。最后通过两个实战项目,让读者在进入企业后可以快速从事基于Spring Boot的企业开发。全书共分为五篇:基础篇、Web篇、数据访问篇、企业应用开发篇、项目实战篇。本书内容全面,涵盖了常用的技术、中间件与框架;讲解深入浅出,让读者学有所得。本书适合所有想要学习Spring Boot,以及正在基于Spring Boot开发的读者。
作者简介
孙鑫,国内IT技术和教育专家,2009年中国教育杰出人物。具有20多年的软件开发和教育培训经验,精通多种程序语言和技术架构。2004年曾推出“VC深入编程”和“Java无难事”教学视频,引起了强烈的反响,在网络上掀起了一股视频教学的风潮,数十万名学员通过这两套视频走上了软件开发的道路。作者从2006年开始,相继出版了多本畅销技术专著,包括《Java无难事》《Java Web开发详解》 《VC深入详解》《Struts 2深入详解》《Servlet/JSP深入详解》《XML、XML Schema、XSLT 2.0和XQuery开发详解 》《HTML5、CSS和JavaScript开发》《Vue.js从入门到实战》。目录
目录
目 录
第1篇 基础篇
第1章 Spring Boot初窥 1
1.1 Spring Boot简介 1
1.2 快速掌握Maven 2
1.2.1 下载并安装Maven 2
1.2.2 认识pom.xml文件 4
1.2.3 配置Maven 12
1.2.4 使用Maven和JDK开发Spring Boot应用 13
1.3 使用Spring Tool Suite开发Spring Boot应用 16
1.3.1 下载并安装STS 16
1.3.2 配置Maven环境 17
1.3.3 开发Spring Boot应用 19
1.4 使用IntelliJ IDEA开发Spring Boot应用 22
1.4.1 下载并安装IDEA 22
1.4.2 配置IDEA 23
1.4.3 开发Spring Boot应用 25
1.5 小结 26
第2章 Spring Boot基础 27
2.1 Spring Boot项目结构剖析 27
2.2 编写控制器 29
2.3 热部署 30
2.4 Spring Boot的配置文件 33
2.4.1 YAML语法 33
2.4.2 配置嵌入式服务器 37
2.4.3 关闭启动时的Banner 40
2.4.4 配置日志 40
2.4.5 使用Profile进行配置 43
2.5 外部配置 47
2.6 Spring Boot常用注解 51
2.6.1 与配置相关的注解 52
2.6.2 Spring MVC相关的注解 52
2.6.3 组件声明相关的注解 53
2.6.4 依赖注入相关的注解 53
2.7 理解starter 53
2.7.1 安装EditStarters插件 54
2.7.2 Spring Boot提供的starter 56
2.8 Spring Boot自动配置原理 57
2.9 自定义starter 62
2.9.1 自动配置模块 63
2.9.2 starter模块 70
2.9.3 测试自定义的starter 71
2.10 小结 72
第2篇 Web篇
第3章 快速掌握Spring MVC 73
3.1 MVC架构模式 73
3.2 Spring MVC 74
3.3 Spring MVC自动配置 76
3.4 Spring MVC接收请求参数 76
3.4.1 准备项目 77
3.4.2 接收表单参数 81
3.4.3 接收JSON数据 82
3.4.4 URL参数 83
3.4.5 文件上传 83
3.4.6 请求报头 84
3.4.7 日期类型参数处理 85
3.5 控制器方法的返回值 85
3.5.1 String 86
3.5.2 ModelAndView 86
3.5.3 Map和Model 87
3.5.4 @ResponseBody注解 87
3.5.5 HttpEntity<B>和ResponseEntity<B> 88
3.5.6 void 88
3.6 @ModelAttribute注解 89
3.7 URL模式匹配 90
3.8 设置上下文路径 90
3.9 小结 91
第4章 Thymeleaf模板引擎 92
4.1 引入和配置Thymeleaf 92
4.2 准备项目 95
4.3 Thymeleaf的语法 99
4.3.1 使用文本 99
4.3.2 国际化 99
4.3.3 标准表达式语法 103
4.3.4 设置属性值 113
4.3.5 迭代 115
4.3.6 条件判断 118
4.3.7 模板布局 119
4.3.8 定义局部变量 130
4.3.9 属性优先级 130
4.3.10 注释 131
4.3.11 块级标签th:block 133
4.3.12 内联 133
4.4 用户注册程序 137
4.4.1 编写注册和注册成功页面 137
4.4.2 编写User类 139
4.4.3 编写UserController类 139
4.4.4 测试用户注册程序 140
4.5 小结 141
第5章 过滤器、监听器与拦截器 142
5.1 Servlet过滤器 142
5.1.1 Filter接口 143
5.1.2 对响应内容进行压缩的过滤器 144
5.2 Servlet监听器 149
5.3 拦截器 151
5.4 小结 153
第6章 输入验证与拦截器 154
6.1 JSR-303 155
6.2 添加验证依赖 155
6.3 对User的字段添加验证 156
6.4 在注册页面中添加验证错误消息的显示 157
6.5 测试输入数据的验证 159
6.6 自定义验证器 159
6.6.1 自定义注解 160
6.6.2 编写实现ConstraintValidator接口的类 160
6.6.3 在User类上使用自定义验证注解 162
6.6.4 在注册页面中添加确认密码输入项 163
6.6.5 测试自定义验证功能 163
6.7 登录验证拦截器 163
6.8 小结 168
第7章 异常处理和错误处理 169
7.1 异常处理 169
7.1.1 @ExceptionHandler注解 169
7.1.2 全局异常处理 171
7.2 自定义错误页面 172
7.3 小结 176
第8章 文件上传和下载 177
8.1 文件上传 177
8.2 文件下载 179
8.3 小结 181
第9章 定义RESTful风格的接口 182
9.1 什么是REST 182
9.2 HTTP方法与RESTful接口 183
9.3 HTTP响应的状态代码 185
9.4 状态代码的困惑与最佳实践 186
9.5 RESTful API设计原则 188
9.6 RESTful API接口的实践 189
9.6.1 项目实例 190
9.6.2 使用Postman测试接口 194
9.6.3 使用RestTemplate测试接口 198
9.7 编写全局错误处理器 200
9.8 使用Swagger 3.0生成接口文档 204
9.8.1 添加Swagger 3.0.0依赖 204
9.8.2 创建Swagger的配置类 204
9.8.3 浏览自动生成的接口文档 205
9.8.4 使用Swagger的注解明确描述接口 207
9.9 小结 210
第10章 Spring WebFlux框架 211
10.1 响应式编程与Reactive Streams 211
10.1.1 Reactive Streams规范 211
10.1.2 Java 9的响应式流实现 212
10.2 Spring MVC与Spring WebFlux 215
10.3 认识Reactor 216
10.4 Spring WebFlux的两种编程模型 217
10.4.1 带注解的控制器方式 218
10.4.2 函数式开发方式 220
10.5 体验异步非阻塞 227
10.6 服务器发送事件 228
10.7 小结 229
第3篇 数据访问篇
第11章 使用Spring的JdbcTemplate访问数据 230
11.1 认识Spring Data 230
11.2 准备工作 232
11.3 使用JdbcTemplate 233
11.3.1 准备项目 234
11.3.2 StatementCallback 235
11.3.3 PreparedStatementCreator 235
11.3.4 PreparedStatementCallback 236
11.3.5 PreparedStatementSetter 236
11.3.6 读取数据 237
11.3.7 执行存储过程 239
11.3.8 获取生成的主键 240
11.3.9 编写实体类 245
11.3.10 编写DAO类 246
11.4 小结 249
第12章 使用JPA访问数据 250
12.1 感受JPA 250
12.1.1 准备项目 251
12.1.2 配置JPA相关属性 252
12.1.3 编写实体类 252
12.1.4 编写DAO接口 253
12.1.5 编写单元测试 254
12.2 两种开发方式 256
12.3 JPA相关注解 256
12.4 Spring Data JPA的核心接口 257
12.4.1 Repository<T,ID>接口 258
12.4.2 CrudRepository<T,ID>接口 259
12.4.3 PagingAndSortingRepository<T,ID>接口 259
12.4.4 JPARepository <T,ID>接口 259
12.4.5 JpaSpecificationExecutor <T>接口 260
12.5 关联关系映射 261
12.5.1 基于主键的一对一关联映射 262
12.5.2 基于外键的一对一关联映射 267
12.5.3 一对多关联映射 270
12.5.4 多对多关联映射 274
12.6 使用JPQL进行查询 277
12.7 使用原生SQL语句进行查询 278
12.8 事务 279
12.8.1 数据库事务隔离级别 279
12.8.2 事务传播 280
12.8.3 @Transactional注解 280
12.8.4 事务边界 281
12.9 项目实际问题的解决 281
12.10 小结 282
第13章 使用MyBatis访问数据 283
13.1 感受MyBatis 283
13.2 SqlSessionFactory 288
13.3 SqlSession 289
13.3.1 语句执行方法 289
13.3.2 立即批量更新方法 291
13.3.3 事务控制方法 291
13.3.4 本地缓存 291
13.3.5 确保SqlSession被关闭 292
13.4 使用映射器 292
13.5 映射器注解 293
13.6 使用注解实现增、删、改、查 296
13.7 关联关系映射 299
13.7.1 一对一关联映射 299
13.7.2 一对多关联映射 301
13.7.3 多对多关联映射 304
13.8 分页查询 306
13.9 小结 309
第14章 使用MongoDB访问数据 310
14.1 下载和安装MongoDB 310
14.2 MongoDB与关系数据库的对比 312
14.3 增、删、改、查的实现 312
14.4 小结 315
第4篇 企业应用开发篇
第15章 安全框架Spring Security 316
15.1 快速开始 316
15.2 身份验证 318
15.3 表单认证 318
15.3.1 自定义表单登录页 319
15.3.2 对有限资源进行保护 321
15.4 前后端分离的登录处理方式 325
15.5 多用户的认证与授权 327
15.5.1 内存用户的认证和授权 327
15.5.2 默认数据库模型的用户认证与授权 330
15.5.3 自定义数据库模型的用户认证与授权 332
15.6 JWT 336
15.6.1 什么是JWT 337
15.6.2 JWT的结构 338
15.6.3 使用JWT实现token验证 339
15.7 小结 348
第16章 Spring Boot与缓存 349
16.1 Spring的缓存抽象 349
16.2 Spring的缓存注解 349
16.2.1 @Cacheable注解 350
16.2.2 @CachePut注解 352
16.2.3 @CacheEvict注解 352
16.2.4 @Caching注解 353
16.2.5 @CacheConfig注解 353
16.2.6 启用缓存 353
16.3 实例:在Spring Boot项目中应用缓存 353
16.4 自定义键的生成策略 357
16.5 JCache(JSR-107)注解 358
16.6 小结 359
第17章 Spring Boot集成Redis 360
17.1 Redis简介 360
17.2 Redis的应用场景 361
17.3 Redis的安装 361
17.4 Redis数据类型 363
17.4.1 string 363
17.4.2 hash 363
17.4.3 list 364
17.4.4 set 364
17.4.5 zset 364
17.5 将Redis用作缓存 365
17.6 掌握RedisTemplate 369
17.6.1 操作字符串 369
17.6.2 操作哈希 370
17.6.3 操作列表 371
17.6.4 操作集合 372
17.6.5 操作有序集合 373
17.7 编写工具类封装Redis访问操作 374
17.8 自定义RedisTemplat
第1篇 基础篇
第1章 Spring Boot初窥 1
1.1 Spring Boot简介 1
1.2 快速掌握Maven 2
1.2.1 下载并安装Maven 2
1.2.2 认识pom.xml文件 4
1.2.3 配置Maven 12
1.2.4 使用Maven和JDK开发Spring Boot应用 13
1.3 使用Spring Tool Suite开发Spring Boot应用 16
1.3.1 下载并安装STS 16
1.3.2 配置Maven环境 17
1.3.3 开发Spring Boot应用 19
1.4 使用IntelliJ IDEA开发Spring Boot应用 22
1.4.1 下载并安装IDEA 22
1.4.2 配置IDEA 23
1.4.3 开发Spring Boot应用 25
1.5 小结 26
第2章 Spring Boot基础 27
2.1 Spring Boot项目结构剖析 27
2.2 编写控制器 29
2.3 热部署 30
2.4 Spring Boot的配置文件 33
2.4.1 YAML语法 33
2.4.2 配置嵌入式服务器 37
2.4.3 关闭启动时的Banner 40
2.4.4 配置日志 40
2.4.5 使用Profile进行配置 43
2.5 外部配置 47
2.6 Spring Boot常用注解 51
2.6.1 与配置相关的注解 52
2.6.2 Spring MVC相关的注解 52
2.6.3 组件声明相关的注解 53
2.6.4 依赖注入相关的注解 53
2.7 理解starter 53
2.7.1 安装EditStarters插件 54
2.7.2 Spring Boot提供的starter 56
2.8 Spring Boot自动配置原理 57
2.9 自定义starter 62
2.9.1 自动配置模块 63
2.9.2 starter模块 70
2.9.3 测试自定义的starter 71
2.10 小结 72
第2篇 Web篇
第3章 快速掌握Spring MVC 73
3.1 MVC架构模式 73
3.2 Spring MVC 74
3.3 Spring MVC自动配置 76
3.4 Spring MVC接收请求参数 76
3.4.1 准备项目 77
3.4.2 接收表单参数 81
3.4.3 接收JSON数据 82
3.4.4 URL参数 83
3.4.5 文件上传 83
3.4.6 请求报头 84
3.4.7 日期类型参数处理 85
3.5 控制器方法的返回值 85
3.5.1 String 86
3.5.2 ModelAndView 86
3.5.3 Map和Model 87
3.5.4 @ResponseBody注解 87
3.5.5 HttpEntity<B>和ResponseEntity<B> 88
3.5.6 void 88
3.6 @ModelAttribute注解 89
3.7 URL模式匹配 90
3.8 设置上下文路径 90
3.9 小结 91
第4章 Thymeleaf模板引擎 92
4.1 引入和配置Thymeleaf 92
4.2 准备项目 95
4.3 Thymeleaf的语法 99
4.3.1 使用文本 99
4.3.2 国际化 99
4.3.3 标准表达式语法 103
4.3.4 设置属性值 113
4.3.5 迭代 115
4.3.6 条件判断 118
4.3.7 模板布局 119
4.3.8 定义局部变量 130
4.3.9 属性优先级 130
4.3.10 注释 131
4.3.11 块级标签th:block 133
4.3.12 内联 133
4.4 用户注册程序 137
4.4.1 编写注册和注册成功页面 137
4.4.2 编写User类 139
4.4.3 编写UserController类 139
4.4.4 测试用户注册程序 140
4.5 小结 141
第5章 过滤器、监听器与拦截器 142
5.1 Servlet过滤器 142
5.1.1 Filter接口 143
5.1.2 对响应内容进行压缩的过滤器 144
5.2 Servlet监听器 149
5.3 拦截器 151
5.4 小结 153
第6章 输入验证与拦截器 154
6.1 JSR-303 155
6.2 添加验证依赖 155
6.3 对User的字段添加验证 156
6.4 在注册页面中添加验证错误消息的显示 157
6.5 测试输入数据的验证 159
6.6 自定义验证器 159
6.6.1 自定义注解 160
6.6.2 编写实现ConstraintValidator接口的类 160
6.6.3 在User类上使用自定义验证注解 162
6.6.4 在注册页面中添加确认密码输入项 163
6.6.5 测试自定义验证功能 163
6.7 登录验证拦截器 163
6.8 小结 168
第7章 异常处理和错误处理 169
7.1 异常处理 169
7.1.1 @ExceptionHandler注解 169
7.1.2 全局异常处理 171
7.2 自定义错误页面 172
7.3 小结 176
第8章 文件上传和下载 177
8.1 文件上传 177
8.2 文件下载 179
8.3 小结 181
第9章 定义RESTful风格的接口 182
9.1 什么是REST 182
9.2 HTTP方法与RESTful接口 183
9.3 HTTP响应的状态代码 185
9.4 状态代码的困惑与最佳实践 186
9.5 RESTful API设计原则 188
9.6 RESTful API接口的实践 189
9.6.1 项目实例 190
9.6.2 使用Postman测试接口 194
9.6.3 使用RestTemplate测试接口 198
9.7 编写全局错误处理器 200
9.8 使用Swagger 3.0生成接口文档 204
9.8.1 添加Swagger 3.0.0依赖 204
9.8.2 创建Swagger的配置类 204
9.8.3 浏览自动生成的接口文档 205
9.8.4 使用Swagger的注解明确描述接口 207
9.9 小结 210
第10章 Spring WebFlux框架 211
10.1 响应式编程与Reactive Streams 211
10.1.1 Reactive Streams规范 211
10.1.2 Java 9的响应式流实现 212
10.2 Spring MVC与Spring WebFlux 215
10.3 认识Reactor 216
10.4 Spring WebFlux的两种编程模型 217
10.4.1 带注解的控制器方式 218
10.4.2 函数式开发方式 220
10.5 体验异步非阻塞 227
10.6 服务器发送事件 228
10.7 小结 229
第3篇 数据访问篇
第11章 使用Spring的JdbcTemplate访问数据 230
11.1 认识Spring Data 230
11.2 准备工作 232
11.3 使用JdbcTemplate 233
11.3.1 准备项目 234
11.3.2 StatementCallback 235
11.3.3 PreparedStatementCreator 235
11.3.4 PreparedStatementCallback 236
11.3.5 PreparedStatementSetter 236
11.3.6 读取数据 237
11.3.7 执行存储过程 239
11.3.8 获取生成的主键 240
11.3.9 编写实体类 245
11.3.10 编写DAO类 246
11.4 小结 249
第12章 使用JPA访问数据 250
12.1 感受JPA 250
12.1.1 准备项目 251
12.1.2 配置JPA相关属性 252
12.1.3 编写实体类 252
12.1.4 编写DAO接口 253
12.1.5 编写单元测试 254
12.2 两种开发方式 256
12.3 JPA相关注解 256
12.4 Spring Data JPA的核心接口 257
12.4.1 Repository<T,ID>接口 258
12.4.2 CrudRepository<T,ID>接口 259
12.4.3 PagingAndSortingRepository<T,ID>接口 259
12.4.4 JPARepository <T,ID>接口 259
12.4.5 JpaSpecificationExecutor <T>接口 260
12.5 关联关系映射 261
12.5.1 基于主键的一对一关联映射 262
12.5.2 基于外键的一对一关联映射 267
12.5.3 一对多关联映射 270
12.5.4 多对多关联映射 274
12.6 使用JPQL进行查询 277
12.7 使用原生SQL语句进行查询 278
12.8 事务 279
12.8.1 数据库事务隔离级别 279
12.8.2 事务传播 280
12.8.3 @Transactional注解 280
12.8.4 事务边界 281
12.9 项目实际问题的解决 281
12.10 小结 282
第13章 使用MyBatis访问数据 283
13.1 感受MyBatis 283
13.2 SqlSessionFactory 288
13.3 SqlSession 289
13.3.1 语句执行方法 289
13.3.2 立即批量更新方法 291
13.3.3 事务控制方法 291
13.3.4 本地缓存 291
13.3.5 确保SqlSession被关闭 292
13.4 使用映射器 292
13.5 映射器注解 293
13.6 使用注解实现增、删、改、查 296
13.7 关联关系映射 299
13.7.1 一对一关联映射 299
13.7.2 一对多关联映射 301
13.7.3 多对多关联映射 304
13.8 分页查询 306
13.9 小结 309
第14章 使用MongoDB访问数据 310
14.1 下载和安装MongoDB 310
14.2 MongoDB与关系数据库的对比 312
14.3 增、删、改、查的实现 312
14.4 小结 315
第4篇 企业应用开发篇
第15章 安全框架Spring Security 316
15.1 快速开始 316
15.2 身份验证 318
15.3 表单认证 318
15.3.1 自定义表单登录页 319
15.3.2 对有限资源进行保护 321
15.4 前后端分离的登录处理方式 325
15.5 多用户的认证与授权 327
15.5.1 内存用户的认证和授权 327
15.5.2 默认数据库模型的用户认证与授权 330
15.5.3 自定义数据库模型的用户认证与授权 332
15.6 JWT 336
15.6.1 什么是JWT 337
15.6.2 JWT的结构 338
15.6.3 使用JWT实现token验证 339
15.7 小结 348
第16章 Spring Boot与缓存 349
16.1 Spring的缓存抽象 349
16.2 Spring的缓存注解 349
16.2.1 @Cacheable注解 350
16.2.2 @CachePut注解 352
16.2.3 @CacheEvict注解 352
16.2.4 @Caching注解 353
16.2.5 @CacheConfig注解 353
16.2.6 启用缓存 353
16.3 实例:在Spring Boot项目中应用缓存 353
16.4 自定义键的生成策略 357
16.5 JCache(JSR-107)注解 358
16.6 小结 359
第17章 Spring Boot集成Redis 360
17.1 Redis简介 360
17.2 Redis的应用场景 361
17.3 Redis的安装 361
17.4 Redis数据类型 363
17.4.1 string 363
17.4.2 hash 363
17.4.3 list 364
17.4.4 set 364
17.4.5 zset 364
17.5 将Redis用作缓存 365
17.6 掌握RedisTemplate 369
17.6.1 操作字符串 369
17.6.2 操作哈希 370
17.6.3 操作列表 371
17.6.4 操作集合 372
17.6.5 操作有序集合 373
17.7 编写工具类封装Redis访问操作 374
17.8 自定义RedisTemplat
猜您喜欢