图书目录

目录

第1章    Spring

1.1  Spring概述   1

1.1.1  Spring的由来 1

1.1.2  Spring的体系结构 1

1.2  Spring开发环境的构建   3

1.2.1  使用Eclipse开发Java Web应用 3

1.2.2  Spring的下载及目录结构 6

1.2.3  第一个Spring入门程序 7

1.3  Spring IoC   9

1.3.1  Spring IoC的基本概念 9

1.3.2  Spring的常用注解 10

1.3.3  基于注解的依赖注入 10

1.4  Spring AOP   13

1.4.1  Spring AOP的基本概念 13

1.4.2  基于注解开发AspectJ 15

1.5  Spring Bean   19

1.5.1  Bean的实例化 19

1.5.2  Bean的作用域 21

1.5.3  Bean的初始化和销毁 23

1.6  Spring的数据库编程   24

1.6.1  Spring JDBC的XML配置 24

1.6.2  Spring JdbcTemplate的常用方法 25

1.6.3  基于@Transactional注解的声明式事务管理 29

1.6.4  如何在事务处理中捕获异常 32

1.7  本章小结 33

习题1 33

第2章    Spring MVC

2.1  Spring MVC的工作原理   34

2.2  Spring MVC的工作环境   35

2.2.1  Spring MVC所需要的JAR包 35

2.2.2  使用Eclipse开发Spring MVC的Web应用 36

2.3  基于注解的控制器   39

2.3.1  Controller注解类型 39

2.3.2  RequestMapping注解类型 39

2.3.3  编写请求处理方法 40

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

2.3.5  重定向与转发 44

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

2.3.7  @ModelAttribute 48

2.4  表单标签库与数据绑定   49

2.4.1  表单标签库 49

2.4.2  数据绑定 52

2.5  JSON数据交互   59

2.5.1  JSON数据结构 59

2.5.2  JSON数据转换 60

2.6  拦截器   63

2.6.1  拦截器的定义 63

2.6.2  拦截器的配置 64

2.6.3  拦截器的执行流程 65

2.7  文件上传   68

2.8  本章小结 71

习题2 71

第3章    MyBatis

3.1  MyBatis简介 73

3.2  MyBatis的环境构建 74

3.3  MyBatis的工作原理 74

3.4  MyBatis的核心配置 75

3.5  使用Eclipse开发MyBatis入门程序   76

3.6  SSM框架整合开发   80

3.6.1  相关JAR包 80

3.6.2  MapperScannerConfigurer方式 81

3.6.3  整合示例 82

3.6.4  SqlSessionDaoSupport方式 87

3.7  使用MyBatis Generator插件自动生成映射文件   92

3.8  映射器概述 93

3.9  <select>元素   94

3.9.1  使用Map接口传递参数 95

3.9.2  使用Java Bean传递参数 97

3.9.3  使用@Param注解传递参数 97

3.9.4  <resultMap>元素 98

3.9.5  使用POJO存储结果集 99

3.9.6  使用Map存储结果集 100

3.10  <insert>、<update>、<delete>以及<sql>元素   101

3.10.1  <insert>元素 101

3.10.2  <update>与<delete>元素 104

3.10.3  <sql>元素 104

3.11  级联查询   104

3.11.1  一对一级联查询 104

3.11.2  一对多级联查询 109

3.11.3  多对多级联查询 112

3.12  动态SQL   114

3.12.1  <if>元素 115

3.12.2  <choose>、<when>、<otherwise>元素 115

3.12.3  <trim>元素 116

3.12.4  <where>元素 117

3.12.5  <set>元素 118

3.12.6  <foreach>元素 119

3.12.7  <bind>元素 120

3.13  MyBatis的缓存机制   121

3.13.1  一级缓存(SqlSession级别的缓存) 122

3.13.2  二级缓存(Mapper级别的缓存) 123

3.14  本章小结 125

习题3 126

第4章    名片管理系统的设计与实现(SSM+JSP)

4.1  系统设计 127

4.1.1  系统功能需求 127

4.1.2  系统模块划分 127

4.2  数据库设计 128

4.2.1  数据库概念结构设计 128

4.2.2  数据库逻辑结构设计 128

4.3  系统管理 129

4.3.1  所需JAR包 129

4.3.2  JSP页面管理 129

4.3.3  包管理 130

4.3.4  配置管理 130

4.4  组件设计 130

4.4.1  工具类 130

4.4.2  统一异常处理 131

4.4.3  验证码 131

4.5  名片管理 132

4.5.1  领域模型与持久化类 132

4.5.2  Controller实现 132

4.5.3  Service实现 134

4.5.4  Dao实现 136

4.5.5  SQL映射文件 137

4.5.6  添加名片 138

4.5.7  名片管理主页面 138

4.5.8  修改名片 139

4.5.9  删除名片 140

4.6  用户相关 140

4.6.1  领域模型与持久化类 140

4.6.2  Controller实现 140

4.6.3  Service实现 141

4.6.4  Dao实现 142

4.6.5  SQL映射文件 142

4.6.6  注册 143

4.6.7  登录 143

4.6.8  修改密码 144

4.6.9  安全退出 144

4.7  本章小结 144

习题4 144

第5章    Spring Boot入门

5.1  Spring Boot概述 145

5.1.1  什么是Spring Boot 145

5.1.2  Spring Boot的优点 145

5.1.3  Spring Boot的主要特性 146

5.2  第一个Spring Boot应用   146

5.2.1  Maven简介 146

5.2.2  Maven的pom.xml 147

5.2.3  使用STS快速构建Spring Boot应用 148

5.2.4  使用IntelliJ IDEA快速构建Spring Boot应用 151

5.3  本章小结 152

习题5 153

第6章    Spring Boot核心

6.1  Spring Boot的基本配置   154

6.1.1  启动类和核心注解@SpringBootApplication 154

6.1.2  关闭某个特定的自动配置 155

6.1.3  定制banner 155

6.1.4  关闭banner 156

6.1.5  Spring Boot的全局配置文件 156

6.1.6  Spring Boot的Starters 157

6.2  读取应用配置   159

6.2.1  Environment 159

6.2.2  @Value 160

6.2.3  @ConfigurationProperties 160

6.2.4  @PropertySource 162

6.3  日志配置   163

6.4  Spring Boot的自动配置原理   164

6.5  Spring Boot的条件注解 166

6.5.1  条件注解 166

6.5.2  实例分析 169

6.5.3  自定义条件   170

6.5.4  自定义Starters   172

6.6  本章小结 176

习题6 176

第7章    Spring Boot的Web开发

7.1  Spring Boot的Web开发支持 177

7.2  Thymeleaf模板引擎 177

7.2.1  Spring Boot的Thymeleaf支持 178

7.2.2  Thymeleaf基础语法   179

7.2.3  Thymeleaf的常用属性   184

7.2.4  Spring Boot与Thymeleaf实现页面信息国际化   188

7.2.5  Spring Boot与Thymeleaf的表单验证   191

7.2.6  基于Thymeleaf与BootStrap的Web开发实例   194

7.3  Spring Boot处理JSON数据   197

7.4  Spring Boot文件上传与下载   202

7.5  Spring Boot的异常统一处理   206

7.5.1  自定义error页面 207

7.5.2  @ExceptionHandler注解 209

7.5.3  @ControllerAdvice注解 210

7.6  Spring Boot对JSP的支持   211

7.7  本章小结 214

习题7 214

第8章    Spring Boot的数据访问

8.1  Spring Data JPA 215

8.1.1  Spring Boot的支持 216

8.1.2  简单条件查询   217

8.1.3  关联查询   225

8.1.4  @Query和@Modifying注解   240

8.1.5  排序与分页查询   243

8.2  Spring Boot整合MyBatis   248

8.3  REST   251

8.3.1  REST简介 251

8.3.2  Spring Boot整合REST 253

8.3.3  Spring Data REST 253

8.3.4  REST服务测试 255

8.4  MongoDB   257

8.4.1  安装MongoDB 258

8.4.2  Spring Boot整合MongoDB 258

8.4.3  增、删、改、查 259

8.5  Redis   262

8.5.1  安装Redis 262

8.5.2  Spring Boot整合Redis 264

8.5.3  使用StringRedisTemplate和RedisTemplate 265

8.6  数据缓存Cache   268

8.6.1  Spring缓存支持 268

8.6.2  Spring Boot缓存支持 270

8.6.3  使用Redis Cache 273

8.7  本章小结 274

习题8 274

第9章    电子商务平台的设计与实现(Spring

Boot + MyBatis + Thymeleaf)

9.1  系统设计 275

9.1.1  系统功能需求 275

9.1.2  系统模块划分 276

9.2  数据库设计 276

9.2.1  数据库概念结构设计 276

9.2.2  数据逻辑结构设计 278

9.2.3  创建数据表 279

9.3  系统管理 279

9.3.1  添加相关依赖 279

9.3.2  HTML页面及静态资源管理 279

9.3.3  应用的包结构 281

9.3.4  配置文件 281

9.4  组件设计 282

9.4.1  管理员登录权限验证 282

9.4.2  前台用户登录权限验证 282

9.4.3  验证码 282

9.4.4  统一异常处理 283

9.4.5  工具类 283

9.5  后台管理子系统的实现 284

9.5.1  管理员登录 284

9.5.2  类型管理 285

9.5.3  添加商品 288

9.5.4  查询商品 290

9.5.5  修改商品 294

9.5.6  删除商品 295

9.5.7  查询订单 296

9.5.8  用户管理 297

9.5.9  安全退出 298

9.6  前台电子商务子系统的实现 298

9.6.1  导航栏及首页搜索 298

9.6.2  推荐商品及最新商品 300

9.6.3  用户注册 302

9.6.4  用户登录 304

9.6.5  商品详情 305

9.6.6  收藏商品 307

9.6.7  购物车 308

9.6.8  下单 312

9.6.9  个人信息 315

9.6.10  我的收藏 316

9.6.11  我的订单 317

9.7  本章小结 319

习题9 319

第10章    Spring Boot的安全控制

10.1  Spring Security快速入门   320

10.1.1  什么是Spring Security 320

10.1.2  Spring Security的适配器 320

10.1.3  Spring Security的用户认证 321

10.1.4  Spring Security的请求授权 322

10.1.5  Spring Security的核心类 324

10.1.6  Spring Security的验证机制 325

10.2  Spring Boot的支持 326

10.3  实际开发中的Spring Security操作实例   326

10.4  本章小结 336

习题10 337

第11章    Spring Boot的异步消息

11.1  消息模型 338

11.1.1  点对点式 338

11.1.2  发布/订阅式 338

11.2  企业级消息代理   339

11.2.1  JMS 339

11.2.2  AMQP 340

11.3  Spring Boot的支持 342

11.3.1  JMS的自动配置 342

11.3.2  AMQP的自动配置 342

11.4  异步消息通信实例   343

11.4.1  JMS实例 343

11.4.2  AMQP实例 346

11.5  本章小结 351

习题11 351

第12章    Spring Boot的热部署与单元测试

12.1  开发的热部署   352

12.1.1  模板引擎的热部署 352

12.1.2  使用spring-boot-devtools进行热部署 352

12.2  Spring Boot的单元测试   353

12.2.1  Spring Boot单元测试程序模板 354

12.2.2  测试Service 354

12.2.3  测试Controller 355

12.2.4  模拟Controller请求 356

12.2.5  比较Controller请求返回的结果 357

12.2.6  测试实例 357

12.3  本章小结 362

习题12 362

第13章    Spring Boot应用的监控

13.1  端点的分类与测试   363

13.1.1  端点的开启与暴露 363

13.1.2  应用配置端点的测试 364

13.1.3  度量指标端点的测试 365

13.1.4  操作控制端点的测试 366

13.2  自定义端点   367

13.3  自定义HealthIndicator   369

13.4  本章小结 370

习题13 370

第14章    Vue 3基础

14.1  安装Vue 3 371

14.1.1  本地独立版本方法 372

14.1.2  CDN方法 372

14.1.3  NPM方法 372

14.1.4  命令行工具(CLI)方法 372

14.2  使用Visual Studio Code开发第一个Vue程序   372

14.2.1  安装Visual Studio Code及其插件 372

14.2.2  创建第一个Vue应用 374

14.2.3  声明式渲染 374

14.2.4  Vue生命周期 375

14.3  插值与表达式 377

14.3.1  文本插值 377

14.3.2  原始HTML插值 377

14.3.3  JavaScript表达式 378

14.4  计算属性和监听器   378

14.4.1  计算属性 378

14.4.2  监听器 380

14.5  指令   381

14.5.1  v-bind与v-on指令 381

14.5.2  条件渲染指令v-if和v-show 383

14.5.3  列表渲染指令v-for 385

14.5.4  表单与v-model 386

14.6  在Vue中动态使用样式   389

14.6.1  绑定class 389

14.6.2  绑定style 390

14.7  组件 391

14.7.1  组件注册   391

14.7.2  父组件向子组件传值   394

14.7.3  子组件向父组件传值   396

14.7.4  提供/注入(组件链传值)   398

14.7.5  插槽   399

14.7.6  动态组件与异步组件 401

14.7.7  使用ref获取DOM元素和组件引用   403

14.8  自定义指令   404

14.9  本章小结 406

习题14 407

第15章    Vue 3进阶

15.1  render函数   408

15.1.1  什么是render函数 408

15.1.2  h()函数 410

15.2  组合API   411

15.2.1  setup 412

15.2.2  响应性 415

15.2.3  模板引用 418

15.3  使用webpack   418

15.3.1  webpack介绍 418

15.3.2  安装webpack与webpack-dev-server 419

15.3.3  webpack配置文件 421

15.3.4  加载器Loaders与插件Plugins 422

15.3.5  单文件组件与vue-loader 425

15.4  路由vue-router   429

15.4.1  什么是路由 429

15.4.2  使用Vue CLI搭建vue-router项目 429

15.4.3  vue-router基本用法 433

15.4.4  跳转与传参 435

15.4.5  路由钩子函数 436

15.5  状态管理与Vuex   438

15.5.1  状态管理与应用场景 438

15.5.2  Vuex基本用法 438

15.5.3  登录权限验证 442

15.6 本章小结 447

习题15 447

第16章    人事管理系统的设计与实现

(Spring Boot + Vue 3 + MyBatis)

16.1  系统设计 448

16.1.1  系统功能需求 448

16.1.2  系统模块划分 449

16.2  数据库设计 449

16.2.1  数据库概念结构设计 449

16.2.2  数据库逻辑结构设计 450

16.2.3  创建数据表 452

16.3  后台应用的实现 452

16.3.1  使用IntelliJ IDEA构建后台应用 452

16.3.2  修改pom.xml 452

16.3.3  配置数据源等信息 452

16.3.4  创建CorsFilter的Bean实例实现跨域访问 453

16.3.5  管理员登录后台实现 454

16.3.6  部门管理后台实现 455

16.3.7  岗位管理后台实现 458

16.3.8  员工管理与试用期管理后台实现 462

16.3.9  岗位调动管理后台实现 467

16.3.10  员工离职管理后台实现 469

16.3.11  报表管理后台实现 471

16.4  前端项目的实现 474

16.4.1  使用Vue CLI搭建前端项目 474

16.4.2  安装axios 474

16.4.3  设置反向代理 474

16.4.4  配置页面路由 475

16.4.5  安装Element Plus 476

16.4.6  管理员登录界面实现 476

16.4.7  界面导航组件实现 478

16.4.8  部门管理界面实现 480

16.4.9  岗位管理界面实现 487

16.4.10  员工管理界面实现 488

16.4.11  试用期管理界面实现 489

16.4.12  岗位调动管理界面实现 489

16.4.13  员工离职管理界面实现 489

16.4.14  报表管理界面实现 491

16.4.15  使用钩子函数实现登录权限认证 492

16.5  测试运行 493

16.6  本章小结 494

习题16 494