目录
源码下载
学习目的与要求1 本章主要内容 1
1.1 Spring简介·1
1.1.1 Spring的由来 ·1
1.1.2 Spring的体系结构 ·1
1.2 Spring开发环境的构建
3
1.2.1 使用 Eclipse开发 Java Web应用 4
1.2.2 Spring的下载 ·6
1.3 使用 Eclipse开发 Spring入门程序
·7
1.4 本章小结 8 习题 1 ·8
学习目的与要求· 10 本章主要内容 · 10
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
2.4 本章小结 · 17 习题 2 17
学习目的与要求· 18 本章主要内容 · 18
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作用域· 22
3.3.2 prototype作用域 23
3.4 Bean的生命周期
24
3.5 Bean的装配方式 26
3.5.1 基于 XML配置的装配
· 26
3.5.2 基于注解的装配
29
3.6 本章小结 · 33 习题 3 33
学习目的与要求· 35 本章主要内容 · 35
4.1 Spring AOP的基本概念 · 35
4.1.1 AOP的概念· 35
4.1.2 AOP的术语· 36
4.2 动态代理 · 37
4.2.1 JDK动态代理
37
4.2.2 CGLIB动态代理
40
4.3 基于代理类的 AOP实现
42
4.4 基于 XML配置开发 AspectJ
45
4.5 基于注解开发 AspectJ
· 49
4.6 本章小结 · 52 习题 4 52
学习目的与要求· 53 本章主要内容 · 53
5.1 Spring的数据库编程 · 53
5.1.1 Spring JDBC的配置· 53
5.1.2 Spring jdbcTemplate的使用方法
54
5.2 编程式事务管理· 58
5.2.1 基于底层 API的编程式事务管理
58
5.2.2 基于 TransactionTemplate的编程式事务管理
60
5.3 声明式事务管理· 62
5.3.1 基于 XML方式的声明式事务管理
63
5.3.2 基于@Transactional注解的声明式事务管理
66
5.3.3 如何在声明式事务管理中捕获异常
· 69
5.4 本章小结 · 71 习题 5 71
学习目的与要求· 72 本章主要内容 · 72
6.1 MVC模式与 Spring MVC的工作原理
72
6.1.1 MVC模式 72
6.1.2 Spring MVC的工作原理 · 73
6.1.3 Spring MVC接口 74
6.2 第一个 Spring MVC应用
· 74
6.2.1 创建Web应用并引入JAR包 · 74
6.2.2 在 web.xml文件中部署 DispatcherServlet · 75
6.2.3 创建 Web应用首页· 76
6.2.4 创建 Controller类 76
6.2.5 创建 Spring MVC配置文件并配置 Controller映射信息· 76
6.2.6 应用的其他页面 77
6.2.7 发布并运行 Spring MVC应用 77
6.3 视图解析器 · 78
6.4 本章小结 · 78 习题 6 78
学习目的与要求· 80 本章主要内容 · 80
7.1 基于注解的控制器
· 80
7.1.1 Controller注解类型 · 80
7.1.2 RequestMapping注解类型 · 81
7.1.3 编写请求处理方法 82
7.2 Controller接收请求参数的常见方式
· 83
7.2.1 通过实体 Bean接收请求参数 · 83
7.2.2 通过处理方法的形参接收请求参数 89
7.2.3 通过 HttpServletRequest接收请求参数· 90
7.2.4 通过@PathVariable接收 URL中的请求参数 · 90
7.2.5 通过@RequestParam接收请求参数 91
7.2.6 通过@ModelAttribute接收请求参数 91
7.3 重定向与转发
· 92
7.4 应用@Autowired进行依赖注入· 93
7.5 @ModelAttribute注解 94
7.6 本章小结 · 96 习题 7 96
学习目的与要求· 98 本章主要内容 · 98
8.1 数据绑定 · 98
8.2 表单标签库 · 98
8.3 数据绑定的应用
·101
8.4 JSON数据交互
108
8.4.1 JSON概述·108
8.4.2 JSON数据转换 109
8.5 本章小结 ·112 习题 8 112
学习目的与要求·114 本章主要内容 ·114
9.1 拦截器概述
·114
9.1.1 拦截器的定义114
9.1.2 拦截器的配置115
9.2 拦截器的执行流程·116
9.2.1 单个拦截器的执行流程
·116 9.2.2 多个拦截器的执行流程 ·118
9.3 应用案例——用户登录权限验证
120
9.4 本章小结 ·124习题 9 124
学习目的与要求·125 本章主要内容 ·125
10.1 数据验证概述·125
10.1.1 客户端验证·125
10.1.2 服务器端验证·125
10.2 Spring验证器
·126
10.2.1 Validator接口 126
10.2.2 ValidationUtils类126
10.2.3 Validator验证示例 127
10.3 Jakarta Bean Validation(JSR 380)
·132
10.3.1 Jakarta Bean Validation验证配置132
10.3.2 标注类型·133
10.3.3 Jakarta Bean Validation验证示例134
10.4 本章小结·137 习题 10137
学习目的与要求·138 本章主要内容 ·138 11.1 程序国际化概述
138
11.1.1 Java国际化的思想 ·138
11.1.2 Java支持的语言和国家 ·139
11.1.3 Java程序国际化 ·139
11.1.4 带占位符的国际化信息 140
11.2 Spring MVC的国际化
141
11.2.1 Spring MVC加载资源属性文件 ·141
11.2.2 语言区域的选择 142
11.2.3 使用 message标签显示国际化信息 142
11.3 用户自定义切换语言示例
143
11.4 本章小结·147 习题 11147
学习目的与要求·148 本章主要内容 ·148 12.1 示例介绍·148 12.2 SimpleMappingExceptionResolver类·153 12.3 HandlerExceptionResolver接口 154 12.4 @ExceptionHandler注解·155 12.5 @ControllerAdvice注解·156 12.6 本章小结·157 习题 12157
学习目的与要求·158 本章主要内容 ·158
13.1 文件的上传
·158 13.2 文件的下载
·163 13.3 本章小结·166 习题 13166
学习目的与要求·167
本章主要内容 ·167
14.1 MyBatis简介 167
14.2 MyBatis的环境构建168
14.3 MyBatis的工作原理168
14.4 MyBatis的核心配置169
14.5 使用 Eclipse开发 MyBatis入门程序
·170
14.6 SSM框架的整合开发 174
14.6.1 相关 JAR包174
14.6.2 MapperScannerConfigurer方式 ·175
14.6.3整合示例
·176
14.6.4SqlSessionDaoSupport方式
·180
14.7 使用 MyBatis Generator插件自动生成映射文件
·185
14.8 映射器概述·187
14.9 <select>元素187
14.9.1 使用 Map接口传递参数
·188
14.9.2 使用 Java Bean传递参数
·190
14.9.3 使用@Param注解传递参数
·191
14.9.4 <resultMap>元素 ·192
14.9.5 使用 POJO存储结果集
192
14.9.6使用 Map存储结果集
·194
14.10 <insert>、<update>、<delete>和<sql>元素 195
14.10.1 <insert>元素
195
14.10.2 <update>与<delete>元素 197
14.10.3 <sql>元素 ·197
14.11 级联查询 197
14.11.1 一对一级联查询
197
14.11.2 一对多级联查询
201
14.11.3 多对多级联查询
204
14.12 动态 SQL207
14.12.1 <if>元素
·207
14.12.2 <choose>、<when>和<otherwise>元素
208
14.12.3 <trim>元素
·208
14.12.4 <where>元素
·209
14.12.5 <set>元素
·210
14.12.6 <foreach>元素
211
14.12.7 <bind>元素
212
14.13 MyBatis的缓存机制 ·213
14.13.1 一级缓存(SqlSession级别的缓存)
·213
14.13.2 二级缓存(Mapper级别的缓存)
215
14.14 本章小结 217 习题 14217
学习目的与要求·218 本章主要内容 ·218
15.1 JUnit 5
218
15.1.1 JUnit 5简介·218
15.1.2 JUnit 5注解·219
15.1.3 JUnit 5断言·220
15.2 单元测试用例·221
15.2.1 测试环境的构建
·221
15.2.2测试 Mapper接口
·225
15.2.3测试 Service层
·227
15.3 使用 Postman测试 Controller层
·228
15.4 本章小结·231 习题 15231
学习目的与要求·232 本章主要内容 ·232
16.1 EL
·232
16.1.1 基本语法·232
16.1.2 EL隐含对象 ·234
16.2 JSTL
·236
16.2.1 配置 JSTL237
16.2.2 核心标签库之通用标签 237
16.2.3 核心标签库之流程控制标签238
16.2.4 核心标签库之迭代标签 240
16.2.5 函数标签库·242
16.3 本章小结·244 习题 16244
学习目的与要求·245 本章主要内容 ·245
17.1 系统设计·245
17.1.1 系统的功能需求 245
17.1.2 系统的模块划分 245
17.2 数据库设计·246
17.2.1 数据库的概念结构设计 246
17.2.2 数据库的逻辑结构设计 247
17.2.3 创建数据表·249
17.3 系统管理
·249
17.3.1 添加相关依赖·249
17.3.2 视图页面及静态资源管理249
17.3.3 应用的包结构·250
17.3.4 配置文件·251
17.4 组件设计
·254
17.4.1 管理员登录权限验证拦截器254
17.4.2 前台用户登录权限验证拦截器 ·255
17.4.3 验证码·255
17.4.4 工具类·255
17.5 后台管理子系统的实现255
17.5.1管理员登录
·256
17.5.2类型管理
·257 17.5.3新增商品
·260
17.5.4查询商品
·262
17.5.5修改商品
·265
17.5.6删除商品
·267
17.5.7查询订单
·268
17.5.8按月统计
·269
17.5.9按类型统计
·271
17.5.10 安全退出·273
17.6 前台电子商务子系统的实现274
17.6.1 导航栏及首页搜索
274
17.6.2最新商品
·275 17.6.3用户注册
·276 17.6.4用户登录
·277 17.6.5商品详情
·278
17.6.6收藏商品
·279
17.6.7购物车
·280
17.6.8下单
·282
17.6.9个人信息
·284
17.6.10我的收藏
·285 17.6.11我的订单
·286
17.7 本章小结·287 习题 17287
A.1 基于 SSM的邮件管理系统
·288
A.2 基于 SSM的人事管理系统
·288