Spring Boot实战:从0开始动手搭建企业级项目

Spring Boot实战:从0开始动手搭建企业级项目

作者:十三

出版社:电子工业出版社

出版年:2021-7

ISBN:9787121414244

所属分类:行业好书

书刊介绍

内容简介

本书首先从Spring Boot基础知识部分讲起,涉及学习方法、技术趋势、开发环境和基础实践;然后是进阶应用部分,涉及核心源码、自动配置、模板引擎、数据库等分析,以及分页功能、文件上传、验证码等功能的编码实现;最后是实战开发部分,即从0开始动手搭建一个企业级的商城项目,涉及后台管理系统和前端页面所有功能模块的技术开发。

本书重在引导读者进入真实的项目开发体验,围绕Spring Boot技术栈全面展开,兼顾相关技术的知识拓展,由浅入深,步步为营,使读者既能学习基础知识,又能掌握一定的开发技巧。本书的目标是让读者拥有一个完整且高质量的学习体验,远离“Hello World项目”,为技术深度的挖掘和薪水、职位的提升提供保障。

本书适合Spring Boot和Java Web的开发者、对大型商城项目开发感兴趣的技术人员,以及对Spring Boot技术栈感兴趣的读者。

作品目录

第1章 如何系统地学习Spring Boot 1
1.1 学习Spring Boot遇到的问题 1
1.2 学习Spring Boot的系统性建议 3
1.2.1 基础实践、源码分析、项目开发 3
1.2.2 如何开发和统筹一个完整的项目 4
1.2.3 其他建议 6
第2章 Spring Boot:Java开发人员的选择 7
2.1 认识Spring Boot 7
2.1.1 越来越流行的Spring Boot 7
2.1.2 Java开发人员必备的技术栈 8
2.2 选择Spring Boot 9
2.2.1 Spring Boot的理念 9
2.2.2 Spring Boot可以简化开发 10
2.2.3 Spring Boot的特性 11
第3章 Spring Boot基础开发环境的安装和配置 14
3.1 JDK的安装和配置 14
3.1.1 下载安装包 14
3.1.2 安装JDK 16
3.1.3 配置环境变量 17
3.1.4 JDK环境变量验证 18
3.2 Maven的安装和配置 18
3.2.1 下载安装包 18
3.2.2 安装并配置Maven 19
3.2.3 Maven环境变量验证 20
3.2.4 配置国内Maven镜像 20
3.3 开发工具IDEA的安装和配置 22
3.3.1 下载IDEA安装包 22
3.3.2 安装IDEA及其功能介绍 24
3.3.3 配置IDEA的Maven环境 25
第4章 Spring Boot项目搭建及快速上手 28
4.1 Spring Boot项目创建 28
4.1.1 认识Spring Initializr 28
4.1.2 Spring Boot项目初始化配置 29
4.1.3 使用Spring Initializr初始化一个Spring Boot项目 30
4.1.4 其他方式创建Spring Boot项目 32
4.2 Spring Boot项目目录结构介绍 33
4.3 启动Spring Boot项目 34
4.3.1 在IDEA编辑器中启动Spring Boot项目 34
4.3.2 Maven插件启动 36
4.3.3 java-jar命令启动 37
4.3.4 Spring Boot项目启动日志 38
4.4 开发第一个Spring Boot项目 39
第5章 Spring Boot核心详解及源码分析 42
5.1 约定优于配置 42
5.2 Spring Boot之依赖管理 43
5.3 @SpringBootApplication注解与分析 49
5.3.1 @SpringBootApplication注解 49
5.3.2 @SpringBootConfiguration注解 51
5.3.3 @EnableAutoConfiguration注解 51
5.3.4 @AutoConfigurationPackage源码解析 52
5.3.5 EnableAutoConfigurationImportSelector类的源码解析 54
5.3.6 @ComponentScan注解 61
5.4 SpringApplication启动流程解析 62
第6章 Spring Boot之DispatcherServlet自动配置及源码解读 78
6.1 Spring MVC的核心分发器DispatcherServlet 78
6.1.1 核心分发器DispatcherServlet介绍 78
6.1.2 DispatcherServlet自动配置的日志输出 80
6.2 DispatcherServlet自动配置的源码调试记录 81
6.3 自动配置类DispatcherServletAutoConfiguration 86
6.3.1 DispatcherServletAutoConfiguration类的讲解 86
6.3.2 DispatcherServletAutoConfiguration在IOC容器中的注册 91
6.4 DispatcherServlet自动配置流程 91
6.4.1 注册至IOC容器 92
6.4.2 创建并启动嵌入式的Tomcat对象 94
6.4.3 装载至Servlet容器 99
第7章 Spring Boot之Web开发和Spring MVC自动配置分析 106
7.1 Spring MVC自动配置内容 106
7.2 WebMvcAutoConfiguration源码分析 107
7.3 ViewResolver视图解析器的自动配置 109
7.4 自动注册Converter、Formatter 111
7.5 消息转换器HttpMessageConverter 113
7.6 Spring Boot对静态资源的映射规则 116
7.7 welcomePage和favicon配置 120
7.7.1 welcomePage配置 120
7.7.2 favicon配置 122
第8章 Thymeleaf模板引擎使用详解 126
8.1 模板引擎技术介绍 126
8.2 Thymeleaf模板引擎 127
8.2.1 Thymeleaf模板引擎介绍 127
8.2.2 Thymeleaf并非Spring Boot默认的模板引擎 128
8.3 Spring Boot之Thymeleaf 整合 129
8.3.1 引入Thymeleaf依赖 130
8.3.2 创建模板文件 132
9.3.3 编辑Controller代码 132
8.3.4 Thymeleaf模板引擎使用注意事项 134
8.4 Thymeleaf属性值讲解 135
8.4.1 Thymeleaf模板解读 135
8.4.2 Thymeleaf属性值的设置 136
8.4.3 修改属性值实践 137
8.5 Thymeleaf语法讲解 139
8.5.1 Thymeleaf语法 139
8.5.2 Thymeleaf简单语法实践 141
8.5.3 Thymeleaf表达式 143
第9章 Spring Boot操作MySQL数据库 151
9.1 Spring Boot连接MySQL实践 151
9.1.1 Spring Boot对数据库连接的支持 151
9.1.2 Spring Boot整合spring-boot-starter-jdbc 152
9.1.3 Spring Boot连接MySQL数据库验证 155
9.2 Spring Boot数据源自动配置源码详解 157
9.2.1 Spring Boot默认数据源HikariDataSource 157
9.2.2 数据源自动配置类DataSourceAutoConfiguration 158
9.2.3 属性绑定 160
9.2.4 DataSourceConfiguration源码解析 160
9.3 使用JdbcTemplate进行数据库的增、删、改、查 164
9.3.1 JdbcTemplate介绍 165
9.3.2 详解JdbcTemplate对数据库的增、删、改、查 165
9.4 Spring Boot项目中MyBatis相关组件的自动配置讲解 170
9.4.1 MyBatis简介 170
9.4.2 mybatis-springboot-starter介绍 171
9.4.3 MyBatis自动配置详解 171
9.5 Spring Boot整合MyBatis的过程 179
9.5.1 添加依赖 179
9.5.2 application.properties的配置 182
9.5.3 启动类增加Mapper扫描 182
9.6 Spring Boot整合MyBatis进行数据库的增、删、改、查 183
9.6.1 新建实体类和Mapper接口 183
9.6.2 创建Mapper接口的映射文件 185
9.6.3 新建MyBatisController 187
第10章 分页功能的讲解和编码实现 192
10.1 分页功能介绍 192
10.1.1 百度分页功能演示 192
10.1.2 GitHub分页功能演示 194
10.1.3 商城后台管理系统分页功能演示 195
10.1.4 商品搜索页分页功能演示 196
10.2 分页功能的作用 197
10.3 分页功能的设计 198
10.3.1 前端分页功能设计 198
10.3.2 后端分页功能设计 199
10.4 分页功能的编码实现 199
10.4.1 新增分页测试数据 200
10.4.2 分页功能返回结果的封装 202
10.4.3 分页功能代码的具体实现 207
10.4.4 分页功能测试 210
10.5 jqGrid分页插件 212
10.5.1 jqGrid分页插件介绍 212
10.5.3 导入jqGrid分页插件资源到项目中 214
10.5.3 使用jqGrid实现分页的步骤 214
10.5.4 分页数据格式详解 217
10.6 整合jqGrid实现分页功能 218
10.6.1 前端页面制作 218
10.6.2 jqGrid初始化 219
10.6.3 整合jqGrid实现分页功能测试 221
第11章 Spring Boot文件上传功能的实现 223
11.1 Spring MVC处理文件上传的源码分析 223
11.1.1 文件上传功能源码调用链 223
11.1.2 文件上传功能源码分析 224
11.1.3 Spring Boot中MultipartResolver的自动配置 227
11.2 Spring Boot文件上传功能的实现案例 229
11.2.1 Spring Boot文件上传配置项 229
11.2.2 新建文件上传页面 230
11.2.3 新建文件上传处理Controller类 231
11.2.5 文件上传功能测试 232
11.3 Spring Boot文件上传路径回显 234
11.4 Spring Boot多文件上传功能的实现 236
11.4.1 文件名相同时的多文件上传处理 236
11.4.2 文件名不同时的多文件上传处理 239
第12章 Spring Boot实现验证码生成及验证功能 245
12.1 验证码介绍 245
12.1.1 什么是验证码 245
12.1.2 验证码的形式 246
12.2 Spring Boot整合easy-captcha生成验证码 248
12.2.1 添加easy-captcha依赖 249
12.2.2 验证码格式 251
12.2.3 验证码字符类型 251
12.2.4 字体设置 252
12.2.5 验证码图片输出 253
12.3 生成并显示验证码 254
12.3.1 后端逻辑实现:生成并输出验证码 254
12.3.2 前端逻辑实现:在页面中展示验证码 255
12.4 验证码的输入验证 256
12.4.1 后端逻辑实现 256
12.4.2 前端逻辑实现 257
第13章 商城项目需求分析与功能设计 260
13.1 选择开发商城系统的原因 260
13.1.1 什么是商城系统 260
13.1.2 为什么要做商城系统 261
13.2 认识新蜂商城系统 262
13.2.1 新蜂商城系统介绍 262
13.2.2 新蜂商城开发背景 263
13.2.3 新蜂商城开源过程 264
13.2.4 新蜂商城运行预览图 266
13.3 新蜂商城功能详解 272
13.3.1 商城端功能整理 272
13.3.2 后台管理系统功能整理 273
13.3.3 新蜂商城架构图 274
第14章 项目初体验:启动和使用新蜂商城 275
14.1 下载商城项目的源码 275
14.1.1 使用clone命令下载源码 275
14.1.2 通过开源网站下载源码 276
14.2 新蜂商城目录结构讲解 279
14.3 启动商城项目 281
14.3.1 导入数据库 281
14.3.2 修改数据库连接配置 281
14.3.3 静态资源目录设置 282
14.3.4 启动并访问商城项目 283
14.4 注意事项 285
14.4.1 关于项目地址 285
14.4.2 关于账号及密码 286
14.4.3 商城登录和后台管理系统登录演示 287
第15章 页面设计及商城后台管理系统页面布局的实现 289
15.1 前端页面实现的技术选型 289
15.1.1 Bootstrap产品介绍 289
15.1.2 为什么选择Bootstrap 290
15.1.3 AdminLTE3产品介绍 291
15.1.4 为什么选择AdminLTE3 293
15.1.5 前端技术选型的5个原则 294
15.2 商城页面布局讲解 294
15.2.1 后台管理系统页面布局介绍 294
15.2.2 商城端页面布局介绍 296
15.3 后台管理系统页面制作 297
15.3.1 AdminLTE3整合到Spring Boot项目中 297
15.3.2 后台管理系统页面制作 298
15.3.3 Controller类处理页面跳转 302
15.3.4 公共页面抽取 303
15.3.5 分段表达式传参 310
第16章 后台管理系统登录功能的实现 313
16.1 登录流程设计 313
16.1.1 什么是登录 313
16.1.2 用户登录状态 314
16.1.3 登录流程设计 315
16.2 管理员登录功能实践 316
16.2.1 管理员登录页面的实现 316
16.2.2 管理员表结构设计 319
16.2.3 新建管理员实体类和Mapper接口 321
16.2.4 创建AdminUserMapper接口的映射文件 323
16.2.5 业务层代码的实现 324
16.2.6 管理员登录控制层代码的实现 325
16.2.7 管理员登录功能演示及注意事项 326
16.3 后台管理系统登录拦截器的实现 328
16.3.1 登录拦截器 328
16.3.2 定义拦截器 329
16.3.3 配置拦截器 331
16.4 管理员模块功能的完善 333
第17章 轮播图管理模块的开发 343
17.1 轮播图模块介绍 343
17.2 轮播图管理页面跳转逻辑的实现 345
17.2.1 导航栏中增加“轮播图配置”栏目 345
17.2.2 控制类处理跳转逻辑 345
17.2.3 轮播图管理页面基础样式的实现 346
17.3 轮播图管理模块后端功能的实现 348
17.3.1 轮播图表结构设计 348
17.3.2 轮播图管理模块接口介绍 349
17.3.3 新建轮播图实体类和Mapper接口 350
17.3.4 创建CarouselMapper接口的映射文件 354
17.3.5 业务层的代码实现 360
17.3.6 轮播图管理模块控制层的代码实现 363
17.4 轮播图管理模块前端功能的实现 366
17.4.1 功能按钮和分页信息展示区域 366
17.4.2 轮播图管理页面分页功能的实现 367
17.4.3 添加和修改按钮触发事件及Modal框的实现 368
17.4.4 轮播图管理页面添加和编辑功能的实现 371
17.4.5 轮播图管理页面删除功能的实现 373
17.4.6 功能测试 375
第18章 分类管理模块的开发 379
18.1 分类管理模块介绍 379
18.1.1 商品分类 379
18.1.2 分类层级 380
18.1.3 分类模块的主要功能 381
18.2 商品类目管理模块前端页面的制作 381
18.2.1 在导航栏中增加“分类管理”栏目 381
18.2.2 控制类处理跳转逻辑 382
18.2.3 分类管理页面基础样式的实现 383
18.2.4 功能按钮和分页信息展示区域 386
18.2.5 URL参数处理 387
18.3 商品分类表的结构设计 388
18.4 分类模块后端功能的实现 389
18.4.1 新建分类实体类和Mapper接口 390
18.4.2 创建GoodsCategoryMapper接口的映射文件 395
18.4.3 业务层代码的实现 401
18.4.4 分类管理模块控制层的代码实现 405
18.5 商品类目管理模块前端功能的实现 410
18.5.1 分类管理页面分页功能的实现 410
18.5.2 上下级分类页面的跳转逻辑处理 412
18.5.3 分类管理页面添加和修改按钮的触发事件 413
18.5.4 分类管理页面添加和编辑功能的实现 414
18.5.5 分类管理页面删除功能的实现 416
18.5.6 功能测试 417
18.6 分类数据的三级联动功能开发 421
18.6.1 多层级数据联动效果的常见场景 421
18.6.2 多层级的数据联动实现原理和方式 423
18.6.3 分类三级联动页面基础样式的实现 423
18.6.4 数据初始化 426
18.6.5 数据联动后端接口的实现 429
18.6.6 监听选择框的change事件并实现联动功能 431
第19章 富文本编辑器介绍及整合 435
19.1 富文本编辑器详解 435
19.1.1 如何处理复杂的文本内容 435
19.1.2 富文本编辑器介绍及其优势 437
19.2 富文本编辑器wangEditor的介绍 438
19.3 wangEditor整合编码案例 441
19.4 新蜂商城项目wangEditor的应用情况 444
19.4.1 为什么选择wangEditor 444
19.4.2 wangEditor整合过程中的问题 445
第20章 商品编辑页面及商品管理模块的开发 448
20.1 新蜂商城商品管理模块简介 448
20.2 新蜂商城商品信息表结构的设计 449
20.3 商品编辑页面的制作 451
20.3.1 导航栏中增加“商品信息”栏目 451
20.3.2 控制类处理跳转逻辑 452
20.3.3 商品信息编辑页面的制作 453
20.3.4 初始化插件 458
20.3.5 新增控制类处理图片上传 462
20.4 商品信息添加接口的开发与联调 467
20.4.1 新建商品实体类和Mapper接口 467
20.4.2 创建NewBeeMallGoodsMapper接口的映射文件 472
20.4.3 业务层的代码实现 476
20.4.4 商品添加接口控制层的代码实现 477
20.4.5 前端调用商品添加接口 478
20.4.6 功能测试 482
20.5 商品信息编辑页面的完善 483
20.5.1 控制类处理跳转的逻辑 484
20.5.2 商品信息编辑页面数据的回显 486
20.6 商品信息修改的开发与联调 489
20.6.1 数据层代码的实现 490
20.6.2 业务层代码的实现 492
20.6.3 商品添加接口控制层代码的实现 493
20.6.4 前端调用商品修改接口 494
20.7 商品信息管理页面的制作 496
20.7.1 导航栏中增加“商品管理”按钮 496
20.7.2 控制类处理跳转逻辑 497
20.7.3 商品管理页面基础样式的实现 497
20.8 商品信息管理模块接口的实现 499
20.8.1 数据层代码的实现 500
20.8.2 业务层代码的实现 501
20.8.3 控制层代码的实现 502
20.9 商品管理模块前端功能的实现 503
20.9.1 商品管理页面功能按钮的设置 503
20.9.2 商品管理页面分页功能的实现 504
20.9.3 商品添加和修改按钮的触发事件 506
20.9.4 商品上架和下架功能的实现 506
20.9.5 功能测试 509
第21章 新蜂商城首页功能的开发 514
21.1 新蜂商城首页静态页面的制作 514
21.1.1 商城首页的设计注意事项 514
21.1.2 新蜂商城首页的排版设计 515
21.1.3 新蜂商城首页基础样式的实现 517
21.2 新蜂商城首页功能的实现 523
21.2.1 首页跳转逻辑的实现 523
21.2.2 Controller处理跳转 523
21.2.3 公共页面的抽取 525
21.3 商城端首页轮播图功能的实现 528
21.3.1 Swiper轮播图插件的介绍 528
21.3.2 轮播图插件Swiper的整合 529
21.3.3 轮播图数据的读取 530
21.3.4 轮播图数据的渲染 531
21.3.5 轮播效果的实现 532
21.4 首页分类效果的制作 532
21.4.1 首页商品分类数据的读取 533
21.4.2 首页商品分类数据的渲染 535
21.4.3 首页商品分类联动效果的实现 536
21.5 商城首页推荐商品模块的介绍 538
21.6 首页配置管理页面的制作 539
21.6.1 导航栏中增加首页配置相关栏目 539
21.6.2 控制类处理跳转逻辑 540
21.6.3 首页配置商品管理页面基础样式的实现 541
21.7 首页配置管理模块接口的设计及实现 543
21.7.1 首页配置表结构的设计 543
21.7.2 新建首页配置实体类和Mapper接口 544
21.7.3 创建IndexConfigMapper接口的映射文件 549
21.7.4 业务层代码的实现 555
21.7.5 首页管理模块控制层代码的实现 559
21.8 首页配置管理模块前端功能的实现 563
21.8.1 功能按钮和分页信息展示区域 563
21.8.2 首页配置管理页面分页功能的实现 563
21.8.3 添加和修改按钮触发事件及Modal框实现 565
21.8.4 首页配置管理页面添加和编辑功能的实现 568
21.8.5 首页配置管理页面删除功能的实现 570
21.9 商城首页功能完善 571
21.9.1 首页推荐商品数据的读取 571
21.9.2 首页推荐商品数据的渲染 573
第22章 商城端用户登录和注册功能的开发 575
22.1 商城端用户表结构的设计 575
22.2 商城端用户登录和注册页面的制作 577
22.2.1 商城端登录页面基础样式的实现 577
22.2.2 商城端注册页面基础样式的实现 579
22.2.3 控制类处理跳转逻辑 580
22.3 商城端用户登录和注册模块接口的实现 580
22.3.1 新建商城端用户实体类和Mapper接口 580
22.3.2 创建MallUserMapper接口的映射文件 584
22.3.3 业务层代码的实现 587
22.3.4 商城端用户登录和注册控制层代码的实现 590
22.4 商城端用户登录注册模块前端功能的实现 593
22.4.1 注册功能的实现 593
22.4.2 登录功能的实现 595
22.5 商城端用户登录拦截器的实现 596
22.5.1 定义拦截器 597
22.5.2 配置拦截器 598
22.6 功能测试 600
第23章 商城端搜索商品功能的开发 602
23.1 搜索页面的设计和数据格式的定义 602
23.1.1 搜索页面的设计 602
23.1.2 数据格式的定义 603
23.2 发起搜索请求 605
23.2.1 商品的关键字搜索 605
23.2.2 商品的分类搜索功能 607
23.3 商品数据查询的实现代码 608
23.3.1 数据层代码的实现 609
23.3.2 业务层代码的实现 611
23.4 商品搜索结果页面数据的渲染 612
23.4.1 参数封装及分页数据的获取 612
23.4.2 搜索结果页面渲染的逻辑实现 614
第24章 商品详情页及购物车功能的开发 619
24.1 商城端商品详情页面的制作 619
24.1.1 商品详情页跳转逻辑的实现 619
24.1.2 商品详情页面数据的渲染 620
24.2 购物车模块简介及表结构设计 624
24.2.1 购物车模块简介 624
24.2.2 购物车表结构设计 624
24.3 将商品加入购物车功能的实现 625
24.3.1 新建购物项实体类和Mapper接口 625
24.3.2 创建NewBeeMallShoppingCartItemMapper接口的映射文件 628
24.3.3 业务层代码的实现 631
24.3.4 将商品加入购物车接口的实现 633
24.3.5 前端功能的实现 635
24.4 购物车列表功能的实现 636
24.4.1 数据格式的定义 636
24.4.2 购物车列表数据的获取 638
24.4.3 购物车列表数据的渲染 641
24.5 编辑购物项功能的实现 645
24.5.1 数据层代码的实现 645
24.5.2 业务层代码的实现 646
24.5.3 控制层代码的实现 648
24.5.4 前端调用修改和删除购物项的接口 650
24.6 功能测试 652
第25章 订单模块功能开发及讲解 656
25.1 订单确认页面的功能开发 657
25.1.1 商城中的订单确认步骤 657
25.1.2 订单确认的前置步骤 658
25.1.3 订单确认页面的数据整合 659
25.1.4 订单确认页面制作及数据渲染 660
25.2 订单模块中的表结构设计 667
25.2.1 订单主表和订单项关联表设计 667
25.2.2 订单项表的设计思路 670
25.3 订单生成功能的实现 670
25.3.1 新蜂商城订单生成的流程 670
25.3.2 发起订单生成请求 671
25.3.3 订单生成请求处理 672
25.3.4 订单生成逻辑的实现 674
25.4 订单详情页面功能的实现 677
25.4.1 订单详情跳转处理 677
25.4.2 订单详情数据的渲染 678
25.5 商城端订单列表功能 685
25.5.1 订单列表数据格式的定义 685
25.5.2 订单列表页面数据的获取 690
25.5.3 订单列表页面渲染的逻辑 692
25.6 订单处理流程及订单状态的介绍 697
25.6.1 订单处理流程 697
25.6.2 订单状态的介绍 698
25.7 订单状态转换的讲解 700
25.7.1 订单支付 700
25.7.2 订单确认 703
25.7.3 订单出库 704
25.7.4 确认收货 705
25.7.5 取消订单 705
25.8 商城系统的展望 707
· · · · · ·

作者简介

韩帅(十三)

企业技术主管、掘金优秀作者、CSDN博客专家、专栏作者、视频讲师。

GitHub开源项目newbee-mall系列的主理人,多年一线开发经验,历任高级开发工程师、后端主程、技术部门主管等职位。熟练使用Java、SQL、Spring Boot、Vue等计算机语言和开发框架,有非常丰富的开发经验,同时也是开源项目的爱好者和贡献者。

相关推荐

微信二维码