目录..

V

扫一扫


目录

源码下载



1.1.Spring简介...............................................................................................................................................1
1.1.1.Spring的由来.............................................................................................................................1
1.1.2.Spring的体系结构.....................................................................................................................1
1.2.Spring开发环境的构建 
 ...................................................................................................................4
1.2.1.配置IntelliJ IDEA的Web服务器..........................................................................................4
1.2.2.Spring的下载.............................................................................................................................6
1.3.使用IntelliJ IDEA开发Spring入门程序 
 ....................................................................................6
本章小结...............................................................................................................................................................9
习题1....................................................................................................................................................................9


2.1.Spring IoC的基本概念........................................................................................................................10
2.2.Spring IoC容器 
 .............................................................................................................................11
2.2.1.BeanFactory............................................................................................................................11
2.2.2.ApplicationContext...............................................................................................................11
2.2.3.GenericApplicationContext...............................................................................................13
2.3.依赖注入的类型 
 ..............................................................................................................................14
2.3.1.使用构造方法注入....................................................................................................................14
2.3.2.使用属性的Setter方法注入..................................................................................................16
本章小结............................................................................................................................................................17
习题2.................................................................................................................................................................17


3.1.Bean的配置...........................................................................................................................................18
3.2.Bean的实例化 
 ................................................................................................................................19
3.2.1.构造方法实例化........................................................................................................................19
3.2.2.静态工厂方法实例化...............................................................................................................20
3.2.3.实例工厂方法实例化...............................................................................................................21
3.3.Bean的作用域 
 ................................................................................................................................22
3.3.1.singleton作用域.....................................................................................................................23
3.3.2.prototype作用域....................................................................................................................24
3.4.Bean的生命周期 
 ............................................................................................................................24
3.5.Bean的装配方式 
 ............................................................................................................................27
3.5.1.基于XML配置的装配.............................................................................................................27
3.5.2.基于注解的装配........................................................................................................................30
本章小结............................................................................................................................................................34
习题3.................................................................................................................................................................34


4.1.Spring AOP的基本概念......................................................................................................................36
4.1.1.AOP的概念...............................................................................................................................36
4.1.2.AOP的术语...............................................................................................................................37
4.2.动态代理 
 ...........................................................................................................................................38
4.2.1.JDK动态代理............................................................................................................................38
4.2.2.CGLIB动态代理.......................................................................................................................41
4.3.基于代理类的AOP实现 
 ...............................................................................................................43
4.4.基于XML配置开发AspectJ 
 .......................................................................................................46
4.5.基于注解开发AspectJ 
 ..................................................................................................................51
本章小结............................................................................................................................................................53
习题4 ................................................................................................................................................................53


5.1.Spring的数据库编程 
 ....................................................................................................................55
5.1.1.Spring JDBC的配置...............................................................................................................55
5.1.2.Spring jdbcTemplate的使用方法......................................................................................56
5.2.编程式事务管理 
 ..............................................................................................................................60
5.2.1.基于底层API的编程式事务管理..........................................................................................60
5.2.2.基于TransactionTemplate的编程式事务管理................................................................62
5.3.声明式事务管理 
 ..............................................................................................................................65
5.3.1.基于XML方式的声明式事务管理........................................................................................65
5.3.2.基于@Transactional注解的声明式事务管理...................................................................69
5.3.3.如何在声明式事务管理中捕获异常......................................................................................72
本章小结............................................................................................................................................................73
习题5.................................................................................................................................................................74


6.1.MVC模式与Spring MVC的工作原理.............................................................................................75
6.1.1.MVC模式..................................................................................................................................75
6.1.2.Spring MVC的工作原理.......................................................................................................76
6.1.3.Spring MVC接口....................................................................................................................77
6.2.第一个Spring MVC应用 
 .............................................................................................................77
6.2.1.使用IDEA创建Web应用并添加相关依赖........................................................................77
6.2.2.在web.xml文件中部署DispatcherServlet......................................................................79
6.2.3.创建Web应用首页.................................................................................................................80
6.2.4.创建Controller类..................................................................................................................80
6.2.5.创建Spring MVC配置文件并配置Controller映射信息...............................................81
6.2.6.应用的其他页面........................................................................................................................81
6.2.7.在IDEA中发布并运行Spring MVC应用..........................................................................82
6.3.视图解析器..............................................................................................................................................83
本章小结............................................................................................................................................................84
习题6.................................................................................................................................................................84


7.1.基于注解的控制器.................................................................................................................................86
7.1.1.Controller注解类型...............................................................................................................86
7.1.2.RequestMapping注解类型.................................................................................................87
7.1.3.编写请求处理方法....................................................................................................................88
7.2.Controller接收请求参数的常见方式 
 .........................................................................................89
7.2.1.通过实体Bean接收请求参数...............................................................................................90
7.2.2.通过处理方法的形参接收请求参数......................................................................................95
7.2.3.通过HttpServletRequest接收请求参数...........................................................................96
7.2.4.通过@PathVariable接收URL中的请求参数..................................................................96
7.2.5.通过@RequestParam接收请求参数.................................................................................97
7.2.6.通过@ModelAttribute接收请求参数...............................................................................97
7.3.重定向与转发 
 ..................................................................................................................................98
7.4.应用@Autowired进行依赖注入.......................................................................................................99
7.5.@ModelAttribute注解.....................................................................................................................101
本章小结..........................................................................................................................................................102
习题7...............................................................................................................................................................102


8.1.数据绑定................................................................................................................................................104
8.2.表单标签库............................................................................................................................................104
8.3.数据绑定的应用 
 ............................................................................................................................108
8.4.JSON数据交互 
 .............................................................................................................................114
8.4.1.JSON概述...............................................................................................................................114
8.4.2.JSON数据转换......................................................................................................................115
本章小结..........................................................................................................................................................118
习题8...............................................................................................................................................................118


9.1.拦截器概述............................................................................................................................................119
9.1.1.拦截器的定义..........................................................................................................................119
9.1.2.拦截器的配置..........................................................................................................................120
9.2.拦截器的执行流程 
 ........................................................................................................................121
9.2.1.单个拦截器的执行流程.........................................................................................................121
9.2.2.多个拦截器的执行流程.........................................................................................................123
9.3.应用案例——用户登录权限验证 
 ..............................................................................................125
本章小结..........................................................................................................................................................129
习题9...............................................................................................................................................................129


10.1.数据验证概述.....................................................................................................................................130
10.1.1.客户端验证..........................................................................................................................130
10.1.2.服务器端验证.....................................................................................................................130
10.2.Spring验证器 
 ............................................................................................................................131
10.2.1.Validator接口...................................................................................................................131
10.2.2.ValidationUtils类.............................................................................................................131
10.2.3.Validator验证示例...........................................................................................................132
10.3.Jakarta Bean Validation(JSR 380) 
 .................................................................................137
10.3.1.Jakarta Bean Validation验证配置...............................................................................137
10.3.2.标注类型..............................................................................................................................138
10.3.3.Jakarta Bean Validation验证示例...............................................................................140
本章小结..........................................................................................................................................................142
习题10.............................................................................................................................................................142


11.1.程序国际化概述.................................................................................................................................143
11.1.1.Java国际化的思想............................................................................................................143
11.1.2.Java支持的语言和国家....................................................................................................144
11.1.3.Java程序国际化................................................................................................................144
11.1.4.带占位符的国际化信息.....................................................................................................145
11.2.Spring MVC的国际化.....................................................................................................................146
11.2.1.Spring MVC加载资源属性文件....................................................................................146
11.2.2.语言区域的选择.................................................................................................................147
11.2.3.使用message标签显示国际化信息.............................................................................147
11.3.用户自定义切换语言示例 
 .........................................................................................................148
本章小结..........................................................................................................................................................153
习题11.............................................................................................................................................................153


12.1.示例介绍..............................................................................................................................................154
12.2.SimpleMappingExceptionResolver类......................................................................................159
12.3.HandlerExceptionResolver接口.................................................................................................160
12.4.@ExceptionHandler注解..............................................................................................................162
12.5.@ControllerAdvice注解...............................................................................................................162
本章小结..........................................................................................................................................................163
习题12.............................................................................................................................................................163


13.1.文件的上传 
 ..................................................................................................................................164
13.2.文件的下载 
 ..................................................................................................................................169
本章小结..........................................................................................................................................................172
习题13.............................................................................................................................................................172


14.1.MyBatis简介.....................................................................................................................................173
14.2.MyBatis的环境构建.........................................................................................................................174
14.3.MyBatis的工作原理.........................................................................................................................174
14.4.MyBatis的核心配置.........................................................................................................................175
14.5.使用IntelliJ IDEA开发MyBatis入门程序 
 ..........................................................................176
14.6.SSM框架的整合开发.......................................................................................................................180
14.6.1.相关JAR包.........................................................................................................................180
14.6.2.MapperScannerConfigurer方式................................................................................181
14.6.3.整合示例 
 ......................................................................................................................182
14.6.4.SqlSessionDaoSupport方式 
 ................................................................................187
14.7.使用MyBatis Generator插件自动生成映射文件...............................................................................191
14.8.映射器概述.........................................................................................................................................193
14.9.<select>元素 
 ............................................................................................................................194
14.9.1.使用Map接口传递参数..................................................................................................194
14.9.2.使用Java Bean传递参数................................................................................................197
14.9.3.使用@Param注解传递参数..........................................................................................197
14.9.4.<resultMap>元素...........................................................................................................198
14.9.5.使用POJO存储结果集....................................................................................................199
14.9.6.使用Map存储结果集......................................................................................................200
14.10.<insert>、<update>、<delete>和<sql>元素 
 .........................................................201
14.10.1.<insert>元素...............................................................................................................201
14.10.2.<update>与<delete>元素....................................................................................203
14.10.3.<sql>元素.....................................................................................................................204
14.11.级联查询...........................................................................................................................................204
14.11.1.一对一级联查询 
 .....................................................................................................204
14.11.2.一对多级联查询 
 .....................................................................................................208
14.11.3.多对多级联查询 
 .....................................................................................................211
14.12.动态SQL 
 ...................................................................................................................................214
14.12.1.<if>元素........................................................................................................................214
14.12.2.<choose>、<when>和<otherwise>元素.......................................................215
14.12.3.<trim>元素..................................................................................................................216
14.12.4.<where>元素..............................................................................................................217
14.12.5.<set>元素.....................................................................................................................218
14.12.6.<foreach>元素............................................................................................................218
14.12.7.<bind>元素..................................................................................................................219
14.13.MyBatis的缓存机制 
 ...............................................................................................................220
14.13.1.一级缓存(SqlSession级别的缓存)......................................................................221
14.13.2.二级缓存(Mapper级别的缓存)............................................................................222
本章小结..........................................................................................................................................................224
习题14.............................................................................................................................................................225


15.1.系统设计..............................................................................................................................................226
15.1.1.系统的功能需求.................................................................................................................226
15.1.2.系统的模块划分.................................................................................................................227
15.2.数据库设计.........................................................................................................................................227
15.2.1.数据库的概念结构设计.....................................................................................................228
15.2.2.数据库的逻辑结构设计.....................................................................................................229
15.2.3.创建数据表..........................................................................................................................230
15.3.系统管理..............................................................................................................................................231
15.3.1.添加相关依赖.....................................................................................................................231
15.3.2.视图页面及静态资源管理.................................................................................................231
15.3.3.应用的包结构.....................................................................................................................232
15.3.4.配置文件..............................................................................................................................232
15.4.组件设计..............................................................................................................................................236
15.4.1.管理员登录权限验证拦截器.............................................................................................236
15.4.2.前台用户登录权限验证拦截器........................................................................................236
15.4.3.验证码..................................................................................................................................237
15.4.4.工具类..................................................................................................................................237
15.5.后台管理子系统的实现 
 .............................................................................................................237
15.5.1.管理员登录..........................................................................................................................237
15.5.2.类型管理..............................................................................................................................238
15.5.3.新增商品..............................................................................................................................241
15.5.4.查询商品..............................................................................................................................243
15.5.5.修改商品..............................................................................................................................246
15.5.6.删除商品..............................................................................................................................248
15.5.7.查询订单..............................................................................................................................249
15.5.8.按月统计..............................................................................................................................250
15.5.9.按类型统计..........................................................................................................................253
15.5.10.安全退出...........................................................................................................................255
15.6.前台电子商务子系统的实现 
 .....................................................................................................256
15.6.1.导航栏及首页搜索.............................................................................................................256
15.6.2.最新商品..............................................................................................................................257
15.6.3.用户注册..............................................................................................................................258
15.6.4.用户登录..............................................................................................................................259
15.6.5.商品详情..............................................................................................................................260
15.6.6.收藏商品..............................................................................................................................261
15.6.7.购物车..................................................................................................................................262
15.6.8.下单......................................................................................................................................264
15.6.9.个人信息..............................................................................................................................266
15.6.10.我的收藏...........................................................................................................................267
15.6.11.我的订单...........................................................................................................................268
本章小结..........................................................................................................................................................269
习题15.............................................................................................................................................................269


16.1.Spring Boot概述.............................................................................................................................270
16.1.1.Spring Boot简介.............................................................................................................270
16.1.2.Spring Boot的优点.........................................................................................................271
16.1.3.Spring Boot的主要特性.................................................................................................271
16.2.第一个Spring Boot应用 
 ........................................................................................................271
16.2.1.Maven简介........................................................................................................................271
16.2.2.Maven的pom.xml.........................................................................................................272
16.2.3.使用IntelliJ IDEA快速构建Spring Boot应用..........................................................273
16.3.Spring Boot的基本配置 
 .........................................................................................................275
16.3.1.启动类和核心注解@SpringBootApplication...........................................................275
16.3.2.Spring Boot的全局配置文件.........................................................................................276
16.3.3.Spring Boot的Starters.................................................................................................277
16.4.读取应用配置 
 ..............................................................................................................................277
16.4.1.Environment.....................................................................................................................277
16.4.2.@Value...............................................................................................................................278
16.4.3.@ConfigurationProperties..........................................................................................279
16.4.4.@PropertySource...........................................................................................................280
16.5.日志配置..............................................................................................................................................281
16.6.Spring Boot的自动配置原理.........................................................................................................282
本章小结..........................................................................................................................................................284
习题16.............................................................................................................................................................284


17.1.Thymeleaf模板引擎........................................................................................................................285
17.1.1.Spring Boot的Thymeleaf支持...................................................................................285
17.1.2.Thymeleaf的基础语法....................................................................................................286
17.1.3.Thymeleaf的常用属性....................................................................................................290
17.2.使用Spring Boot和Thymeleaf实现页面信息的国际化 
 ................................................294
17.3.Spring Boot和Thymeleaf的表单验证 
 ...............................................................................297
17.4.基于Thymeleaf和BootStrap的Web开发实例 
 ..............................................................299
本章小结..........................................................................................................................................................302
习题17.............................................................................................................................................................302


18.1.Spring Boot整合MyBatis 
 .....................................................................................................303
18.2.MyBatis-Plus快速入门 
 ............................................................................................................306
18.2.1.MyBatis-Plus简介...........................................................................................................306
18.2.2.Spring Boot整合MyBatis-Plus...................................................................................306
18.3.MyBatis-Plus注解............................................................................................................................309
18.4.MyBatis-Plus代码生成器...............................................................................................................312
18.4.1.安装MyBatis-Plus代码生成器......................................................................................312
18.4.2.配置MyBatis-Plus代码生成器......................................................................................312
18.5.CRUD接口 
 ..................................................................................................................................320
18.5.1.Mapper CRUD接口........................................................................................................320
18.5.2.Service CRUD接口..........................................................................................................322
18.6.条件构造器.........................................................................................................................................328
本章小结..........................................................................................................................................................332
习题18.............................................................................................................................................................332


19.1.JUnit 5注解.......................................................................................................................................333
19.1.1.JUnit 5简介.......................................................................................................................333
19.1.2.JUnit 5注解.......................................................................................................................334
19.1.3.JUnit 5断言.......................................................................................................................335
19.2.单元测试用例 
 ..............................................................................................................................336
19.2.1.测试环境的构建.................................................................................................................337
19.2.2.测试Mapper接口............................................................................................................338
19.2.3.测试Service层..................................................................................................................340
19.3.使用Postman测试Controller层 
 .........................................................................................341
本章小结..........................................................................................................................................................343
习题19.............................................................................................................................................................343


20.1.系统设计..............................................................................................................................................344
20.1.1.系统的功能需求.................................................................................................................344
20.1.2.系统的模块划分.................................................................................................................344
20.2.数据库设计.........................................................................................................................................345
20.2.1.数据库的概念结构设计.....................................................................................................345
20.2.2.数据库的逻辑结构设计.....................................................................................................345
20.3.系统管理..............................................................................................................................................346
20.3.1.项目依赖管理.....................................................................................................................346
20.3.2.页面管理..............................................................................................................................346
20.3.3.包管理..................................................................................................................................347
20.3.4.分页插件配置类.................................................................................................................347
20.3.5.全局配置文件.....................................................................................................................348
20.4.组件设计..............................................................................................................................................348
20.4.1.工具类..................................................................................................................................348
20.4.2.异常统一处理.....................................................................................................................349
20.4.3.验证码..................................................................................................................................350
20.5.名片管理..............................................................................................................................................350
20.5.1.领域模型与持久化实体类.................................................................................................350
20.5.2.Controller层的实现.........................................................................................................351
20.5.3.Service层的实现..............................................................................................................352
20.5.4.Dao层的实现.....................................................................................................................354
20.5.5.添加名片..............................................................................................................................355
20.5.6.管理名片..............................................................................................................................357
20.6.用户相关..............................................................................................................................................360
20.6.1.领域模型与持久化实体类.................................................................................................360
20.6.2.Controller层的实现.........................................................................................................360
20.6.3.Service层的实现..............................................................................................................361
20.6.4.Dao层的实现.....................................................................................................................362
20.6.5.注册......................................................................................................................................363
20.6.6.登录......................................................................................................................................365
20.6.7.修改密码..............................................................................................................................366
20.6.8.安全退出..............................................................................................................................367
本章小结..........................................................................................................................................................367
习题20.............................................................................................................................................................367