图书目录

第1章  Spring基础 1

学习目的与要求 1

本章主要内容 1

1.1  Spring概述 1

1.1.1  Spring的由来 1

1.1.2  Spring的体系结构 1

1.2  Spring开发环境的构建 3

1.2.1  配置IntelliJ IDEA的Web服务器 4

1.2.2  Spring的下载 6

1.2.3  第一个Spring入门程序 6

1.3  Spring IoC 10

1.3.1  Spring IoC的基本概念 10

1.3.2  Spring的常用注解 10

1.3.3  基于注解的依赖注入 11

1.4  Spring AOP 14

1.4.1  Spring AOP的基本概念 14

1.4.2  基于注解开发AspectJ 17

1.5  Spring Bean 22

1.5.1  Bean的实例化 22

1.5.2  Bean的作用域 25

1.5.3  Bean的初始化和销毁 27

1.6  本章小结 29

习题1 29

第2章 Spring MVC基础 30

学习目的与要求 30

本章主要内容 30

2.1  Spring MVC的工作原理 31

2.2  Spring MVC的工作环境 32

2.2.1  Spring MVC所需要的JAR包 32

2.2.2  使用IntelliJ IDEA开发Spring MVC应用 32

2.2.3  基于Java配置的Spring MVC应用 39

2.3  基于注解的控制器 42

2.3.1  Controller注解类型 42

2.3.2  RequestMapping注解类型 42

2.3.3  编写请求处理方法 44

2.3.4  Controller接收请求参数的常见方式 45

2.3.5  重定向与转发 51

2.3.6  应用@Autowired进行依赖注入 52

2.3.7  @ModelAttribute 54

2.4  JSON数据交互 55

2.4.1  JSON数据结构 55

2.4.2  JSON数据转换 56

2.5  Spring MVC的基本配置 61

2.5.1  静态资源配置 61

2.5.2  拦截器配置 62

2.5.3  文件上传配置 63

2.6  本章小结 69

习题2 69

第3章 Spring Boot入门 69

学习目的与要求 69

本章主要内容 69

3.1 Spring Boot概述 69

3.1.1 什么是Spring Boot 69

3.1.2 Spring Boot的优点 69

3.1.3 Spring Boot的主要特性 69

3.2 第一个Spring Boot应用 70

3.2.1 Maven简介 70

3.2.2 Maven的pom.xml 71

3.2.3 使用IntelliJ IDEA快速构建Spring Boot应用 72

3.3  本章小结 75

习题3 75

第4章 Spring Boot核心 76

学习目的与要求 76

本章主要内容 76

4.1 Spring Boot的基本配置 76

4.1.1 启动类和核心注解@SpringBootApplication 76

4.1.2 Spring Boot的全局配置文件 77

4.1.3 Spring Boot的Starters 78

4.2 读取应用配置 78

4.2.1 Environment 78

4.2.2 @Value 80

4.2.3 @ConfigurationProperties 80

4.2.4 @PropertySource 82

4.3 日志配置 83

4.4 Spring Boot的自动配置原理 85

4.5 Spring Boot的条件注解 87

4.5.1 条件注解 87

4.5.2 自定义条件 87

4.5.3 自定义Starters 90

4.6 本章小结 97

习题4 97

第5章 Spring Boot的Web开发 98

学习目的与要求 98

本章主要内容 98

5.1 Spring Boot的Web开发支持 98

5.2 Thymeleaf模板引擎 98

5.2.1 Spring Boot的Thymeleaf支持 99

5.2.2 Thymeleaf基础语法 100

5.2.3 Thymeleaf的常用属性 103

5.2.4 Spring Boot与Thymeleaf实现页面信息国际化 108

5.2.5 Spring Boot与Thymeleaf的表单验证 113

5.2.6 基于Thymeleaf与BootStrap的Web开发实例 117

5.3 Spring Boot处理JSON数据 121

5.4 Spring Boot文件上传与下载 126

5.5 Spring Boot的异常统一处理 133

5.5.1 自定义error页面 133

5.5.2 @ExceptionHandler注解 137

5.5.3 @ControllerAdvice注解 138

5.6 Spring Boot对JSP的支持 139

5.7 本章小结 142

习题5 142

第6章 Spring Boot的数据访问 143

学习目的与要求 143

本章主要内容 143

6.1 Spring Data JPA 143

6.1.1 Spring Boot的支持 144

6.1.2 简单条件查询 145

6.1.3 关联查询 153

6.1.4 @Query和@Modifying注解 173

6.1.5 排序与分页查询 174

6.2 REST 179

6.2.1 REST简介 179

6.2.2 Spring Boot整合REST 181

6.2.3 Spring Data REST 181

6.2.4 REST服务测试 183

6.3 MongoDB 187

6.3.1 安装MongoDB 188

6.3.2 Spring Boot整合MongoDB 188

6.3.3 增删改查 189

6.4 Redis 193

6.4.1 安装Redis 194

6.4.2 Spring Boot整合Redis 198

6.4.3 使用StringRedisTemplate和RedisTemplate 199

6.5 数据缓存Cache 204

6.5.1 Spring缓存支持 204

6.5.2 Spring Boot缓存支持 206

6.5.3 使用Redis Cache 211

6.6  本章小结 211

习题6 211

第7章 MyBatis与MyBatis-Plus 212

学习目的与要求 212

本章主要内容 212

7.1 Spring Boot整合MyBatis 212

7.2 MyBatis基础 216

7.2.1 <select>元素 216

7.2.2 <insert>、<update>以及<delete>元素 220

7.2.3 动态SQL 221

7.3 MyBatis-Plus快速入门 224

7.3.1 MyBatis-Plus简介 224

7.3.2 Spring Boot整合MyBatis-Plus 224

7.4 MyBatis-Plus基础 227

7.4.1 MyBatis-Plus注解 227

7.4.2 CRUD 接口 230

7.4.3 条件构造器 239

7.5 本章小结 244

习题7 244

第8章 Spring Boot的安全控制 245

学习目的与要求 245

本章主要内容 245

8.1 Spring Security快速入门 245

8.1.1 什么是Spring Security 245

8.1.2 Spring Security的用户认证 245

8.1.4 Spring Security的请求授权 247

8.1.5 Spring Security的核心类 248

8.1.6 Spring Security的验证机制 249

8.2 Spring Boot的支持 249

8.3 实际开发中的Spring Security操作实例 250

8.4 本章小结 262

习题8 262

第9章 异步消息 263

学习目的与要求 263

本章主要内容 263

9.1 消息模型 263

9.1.1 点对点式 263

9.1.2 发布/订阅式 263

9.2 企业级消息代理 263

9.2.1 JMS 264

9.2.2 AMQP 266

9.3 Spring Boot的支持 267

9.3.1 JMS的自动配置 267

9.3.2 AMQP的自动配置 268

9.4 异步消息通信实例 268

9.4.1 JMS实例 268

9.4.2 AMQP实例 273

9.5 本章小结 278

习题9 278

第10章  Spring Boot单元测试 279

学习目的与要求 279

本章主要内容 279

10.1  Junit 5 279

10.1.1  Junit 5简介 279

10.1.2  Junit 5注解 279

10.1.3  Junit 5断言 281

10.2  单元测试用例 283

10.2.1  测试环境构建 283

10.2.2  测试Mapper接口 285

10.2.3  测试Service层 286

10.3  使用Postman测试Controller层 287

10.4  本章小结 291

习题10 291

第11章 Vue.js基础 292

学习目的与要求 292

本章主要内容 292

11.1 网站交互方式 292

11.1.1 多页应用程序 292

11.1.2 单页应用程序 293

11.2 MVVM模式 294

11.3 Vue.js是什么 295

11.4 安装Vue.js 295

11.4.1 本地独立版本方法 295

11.4.2 CDN方法 295

11.4.3 NPM方法 296

11.4.4 命令行工具(CLI)方法 296

11.5 第一个Vue.js程序 296

11.5.1 安装Visual Studio Code及其插件 296

11.5.2 创建第一个Vue.js应用 297

11.5.3 声明式渲染 299

11.5.4 Vue.js生命周期 300

11.6 插值与表达式 302

11.6.1 文本插值 303

11.6.2 原始HTML插值 303

11.6.3 JavaScript表达式 303

11.7 计算属性和监听器 303

11.7.1 计算属性computed 303

11.7.2 监听器属性watch 307

11.8 内置指令 309

11.8.1 v-bind指令 309

11.8.2 条件渲染指令v-if和v-show 310

11.8.3 列表渲染指令v-for 312

11.8.4 事件处理 314

11.8.5 表单与v-model 316

11.8.6 实战:购物车实例 318

11.9 组件 321

11.9.1 组件注册 322

11.9.2 使用props传递数据 324

11.9.3 组件通信 327

11.9.4 动态与异步组件 333

11.9.5 实战:正整数数字输入框组件 334

11.10 自定义指令 336

11.10.1 自定义指令注册 336

11.10.2 实战:实时时间转换指令 338

11.11 响应性 340

11.11.1 什么是响应性 340

11.11.2 响应性原理 341

11.12 setup组件选项 342

11.12.1 setup函数的参数 342

11.12.2 setup函数的返回值 344

11.12.3 使用ref创建响应式引用 345

11.12.4 setup内部调用生命周期钩子函数 346

11.13 本章小结 346

习题11 346

第12章 Vue.js进阶 350

学习目的与要求 350

本章主要内容 350

12.1 单文件组件与webpack 350

12.2 安装Node.js和NPM 351

12.2.1 安装Node.js 351

12.2.2 NPM常用命令 352

12.3 Vue Router 354

12.3.1 Vue Router的安装 355

12.3.2 Vue Router基本用法 360

12.3.3 Vue Router高级应用 366

12.3.4 路由钩子函数 380

12.3.5 路由元信息 384

12.3.6 登录权限验证示例 385

12.4 setup语法糖 388

12.4.1 属性与方法的绑定 389

12.4.2 路由 390

12.4.3 组件传值 392

12.5 Element Plus UI组件库 395

12.5.1 Element Plus安装 395

12.5.2 Element Plus组件介绍 395

12.5.3 Element Plus组件应用 396

12.5.4 按需引入Element Plus 398

12.6 本章小结 400

习题12 400

第13章  电子商务平台的设计与实现(Spring Boot + Vue.js 3 + MyBatis-Plus) 402

学习目的与要求 402

本章主要内容 402

13.1  系统设计 402

13.1.1  系统功能需求 402

13.1.2  系统模块划分 403

13.2  数据库设计 403

13.2.1  数据库概念结构设计 404

13.2.2  数据库逻辑结构设计 405

13.3  使用IntelliJ IDEA构建后端系统 407

13.3.1  创建Spring Boot Web应用 407

13.3.2  修改pom.xml 407

13.3.3  配置数据源等信息 407

13.3.4  创建持久化实体类 408

13.3.5  创建Mapper接口 408

13.3.6  创建业务层 410

13.3.7  创建控制器层 420

13.3.8  创建跨域响应头设置过滤器 426

13.3.9  创建工具类 426

13.3.10 MyBatis-Plus分页插件、Redis以及Token签名配置 426

13.4  使用Vue CLI构建前端系统 427

13.4.1  使用Vue CLI构建前端项目ebusiness-vue 427

13.4.2  安装Element Plus和@element-plus/icons-vue 427

13.4.3 安装ECharts 428

13.4.4  安装Axios模块并设置跨域访问 428

13.4.5  管理员登录组件 428

13.4.6  后台管理主界面组件 431

13.4.7  商品类型管理组件 431

13.4.8  商品管理组件 432

13.4.9  订单管理组件 432

13.4.10  销量统计(按月)组件 436

13.4.11  订单统计(按类型)组件 438

13.4.12  前端首页组件 441

13.4.13  用户注册组件 443

13.4.14  用户登录组件 443

13.4.15  个人信息组件 444

13.4.16  商品详情组件 444

13.4.17  我的购物车组件 448

13.4.18  我的订单组件 453

13.4.19  我的收藏组件 453

13.4.20  订单确认组件 454

13.4.21  配置路由 454

13.5  测试运行 457

13.6  小结 457

习题13 457